33 lines
732 B
Python
33 lines
732 B
Python
import sys
|
|
|
|
sys.setrecursionlimit(1 << 16)
|
|
|
|
|
|
def solve(M, N, U):
|
|
"""get count of pathes"""
|
|
|
|
Mem = [[-1 for _ in range(N)] for _ in range(M)]
|
|
Mem[M - 1][N - 1] = 1
|
|
|
|
def dfs(now):
|
|
x, y = now
|
|
if Mem[x][y] != -1:
|
|
return Mem[x][y]
|
|
cnt = 0
|
|
for i, j in ((1, 0), (-1, 0), (0, 1), (0, -1)):
|
|
_x, _y = x + i, y + j
|
|
if 0 <= _x < M and 0 <= _y < N and U[_x][_y] < U[x][y]:
|
|
cnt += dfs((_x, _y))
|
|
|
|
Mem[x][y] = cnt
|
|
return Mem[x][y]
|
|
|
|
dfs((0, 0))
|
|
return Mem[0][0]
|
|
|
|
|
|
if __name__ == '__main__':
|
|
M, N = map(int, input().split())
|
|
U = [list(map(int, input().split())) for _ in range(M)] # U[m][n]
|
|
print(solve(M, N, U))
|