#include<stdio.h>
int m[30][30];
int a,b;
int solve(int i,int j){
	if(j==b){
		return solve(i+1,0);
	}
	if(i==a)return 1;
	if(m[i][j])return solve(i,j+1);
	//for(int k=0;k<a;k++){
	//	for(int l=0;l<b;l++){
	//		printf("%d ",m[k][l]);
	//	}
	//	printf("\n");
	//}
	//printf("\n");
	int ret=0;
	if(i<a-1&&!m[i+1][j]){
		if(i==0||((j==0||m[i-1][j-1]!=3)&&(j==b-1||(m[i-1][j]<2||m[i-1][j+1]%2!=1)))){
			m[i][j]=2;
			m[i+1][j]=3;
			ret+=solve(i,j+1);
			m[i][j]=m[i+1][j]=0;
		}
	}
	if(j<b-1&&!m[i][j+1]){
		if(i==0||((j==0||m[i-1][j-1]!=3)&&(j==b-2||(m[i-1][j+1]<2||m[i-1][j+2]%2!=1)))){
			m[i][j]=1;
			m[i][j+1]=3;
			ret+=solve(i,j+1);
			m[i][j]=m[i][j+1]=0;
		}
	}
	return ret;
}
int main(){
	//int a,b;
	while(scanf("%d%d",&a,&b),a){
		for(int i=0;i<30;i++)
			for(int j=0;j<30;j++)
				m[i][j]=0;
		printf("%d\n",solve(0,0));
	}
}