n,m = map(int,input().split())

dp = [[0] * (m + 1) for i in range(n + 1)]

for i in range(n + 1):
    for j in range(m + 1):
        if i == 0 and j == 0:
            dp[0][0] = 1
        elif i == 0:
            dp[0][j] = dp[0][j - 1]
        elif j == 0:
            dp[i][0] = dp[i - 1][0]
        else:
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
print(dp[-1][-1])

对于第一行和第一列,都只有一种走法,所以都为1

对于其他格子,可以从上方或者左方走来

所以dp[i][j] = dp[i - 1][j] + dp[i][j - 1]

最后返回dp[-1][-1]即为答案

#牛客春招刷题训练营#