#递归是一种效率不是很高的算法 # import math # i,j=map(int,input().split()) # def Fab_2_dimension(i,j): # if i==1 and j==1: # return 1 # elif i>=2 and j==1: # return Fab_2_dimension(i-1,j) # elif j>=2 and i==1: # return Fab_2_dimension(i,j-1) # else: # return Fab_2_dimension(i-1,j)+Fab_2_dimension(i,j-1) # result=Fab_2_dimension(i,j)%(math.pow(10,9)+7) # print(int(result)) n,m=map(int,input().split()) dp=[[0 for _ in range(m+1)] for _ in range(n+1)] for i in range(1,n+1): for j in range(1,m+1): if i==1 or j==1: dp[i][j]=1 else: dp[i][j]=(dp[i-1][j]+dp[i][j-1])%(10**9+7) print(dp[n][m])