import sys
data = sys.stdin.read().strip().split('\n')

n,m = map(int,data[0].split())

if n ==1 or m==1:
    print(1)
else:
    A =[[1 for a in range(m)] for b in range(n)]
    for i in range(1,n):
        for j in range(1,m):
			A[i][j] = A[i-1][j]+A[i][j-1]
    print(A[-1][-1]%(10**9+7))

首先是特解:第一行和第一列的所有数都是1,按定义写一下就可以知道

然后是通解:

对于通解首先要明确二位数组是怎么创建和访问的,创建不多说,访问多说一嘴,按平时的书写习惯来说就是往下走i位,再往右走j位。接下来就可以根据定义把整个表写出来。