#比较简单的动态规划题,很容易想到状态转移方程
def f(n,m):
if n==1 or m==1:#棋盘的上边缘和左边缘
return 1
else:
return f(n-1,m)+f(n,m-1)
n,m=map(int,input().split())
n+=1#格子数加1才是行列数
m+=1
print(f(n,m))

#比较简单的动态规划题,很容易想到状态转移方程
def f(n,m):
if n==1 or m==1:#棋盘的上边缘和左边缘
return 1
else:
return f(n-1,m)+f(n,m-1)
n,m=map(int,input().split())
n+=1#格子数加1才是行列数
m+=1
print(f(n,m))