# 思路是有横纵两个坐标的点需要填,并且有对应关系,先创一个列表套住所有元素,然后按照公式赋值正确的数即可
n,m = map(int,input().split())
mod = 10**9 + 7
# 创建空二维表格,初始化全放0
table = []
for i in range(n+1):
row = []
for j in range(m + 1):
row.append(0)
table.append(row)
# 定义第一个点为1
table[1][1] = 1
# 给第一列的所有行赋值
for i in range(2,n+1):
table[i][1] = table[i-1][1]
# 给第一行的所有列赋值
for j in range(2,m+1):
table[1][j] = table[1][j-1]
# 给剩下的点赋值
for i in range(2,n+1):
for j in range(2,m+1):
table[i][j] = table[i-1][j] + table[i][j-1]
result = table[n][m] % mod
print(result)