d = []
def maze(chessboard,i,j): #i,j为当前位置
    if(i == len(chessboard) - 1) and (j == len(chessboard[0]) - 1): #到达终点
        d.append(1) #在d中插入一个1
        return 0
    else:
        if(i != len(chessboard) - 1) and (chessboard[i + 1][j] == 0): #能够向下走
            maze(chessboard,i + 1,j) #向下走
        if(j != len(chessboard[0]) - 1) and (chessboard[i][j + 1] == 0): #能够向右走
            maze(chessboard,i,j + 1) #向右走
while True:
    try:
        a,b = map(int,input().split())
        c = []
        for i in range(a + 1):
            c.append([0]*(b+1)) #棋盘边缘的点都为0放在一个数组里
        maze(c,0,0)
        print(len(d)) #输出b的长度,代表到达终点有多少种方法
        d = [] #重新输入新的棋盘之前要将d清空
    except:
        break