// 在平面上有一些二维的点阵。
// 这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,
// 从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。
// 现在有个人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下
// 走。
// 注意,如果行号和列数都是偶数,不能走入这一格中。
// 问有多少种方案。
public class 走方格 {
static int sum;
static int n;
static int m;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
m = scanner.nextInt();
sum = 0;
zfg(0,0);
System.out.println(sum);
}
private static void zfg(int i, int j) {
if(i==n-1&&j==m-1) {
sum++;
return;
}
if(i<0||i>n-1||j<0||j>m-1) {
return;
}
if(i%2!=0&&j%2!=0) {
return;
}
zfg(i+1, j);
zfg(i, j+1);
}
}