#include <cstdio>
//递归做法 简单但是会超时
int m;//列
int n;//行
int cnt = 0 ;// 计数
int x1[] = {1,2,2,1};
int y1[] = {-2,-1,1,2};
void tiao(int x,int y){ // x行,y列
if(x < 1 || x > n || y <1 || y > m) // 不在棋盘内
return;
if(x == n && y == m) // 到达终点
{
cnt++;
return;
}
int k;
for(k=0;k<=3;k++)
tiao(x+x1[k],y+y1[k]);
}
int main(){
freopen("horse.in","r",stdin);
freopen("horse.out","w",stdout);
scanf("%d%d",&m,&n);
tiao(1,1);
printf("%d",cnt);
return 0;
}