------
## 最终结论
```python
def eulerian_num(n, m):
    # Create a table to store results of subproblems
    A = [[0] * (n + 1) for _ in range(n + 1)]
    
    # Base cases
    A[0][0] = 1
    for i in range(1, n + 1):
        A[i][0] = 1  # a(n, 0) = 1 for all n >= 0
        A[i][i - 1] = 1  # a(n, n-1) = 1 for all n >= 0
    
    # Fill the table using the recursive relation
    for i in range(1, n + 1):
        for j in range(1, i):
            A[i][j] = (i - j) * A[i - 1][j - 1] + (j + 1) * A[i - 1][j]
    
    return A[n][m]

# Test cases
assert eulerian_num(3, 1) == 4
assert eulerian_num(4, 1) == 11
assert eulerian_num(5, 3) == 26
```