N=110
mod=1000000007
f=[[[0]*N for i in range(N)]for j in range(N)]
f[0][0][2]=1
n,m=map(int,input().split())
k=2
for i in range(n+1):
for j in range(m+1):
for k in range(m+1): #遇到的花店最多100个,当k大于了100以后,这种方案不合法,因为到了终点的酒的数量一定大于0
if k%2==0 and i>=1:
f[i][j][k]=(f[i][j][k]+f[i-1][j][k//2])%mod
if j>=1:
f[i][j][k]=(f[i][j][k]+f[i][j-1][k+1])%mod
print(f[n][m-1][1])