#include <stdio.h>
#include <string.h>
long long dp[12][2050];
int ms,h,w;
bool check(int x)
{
while(x){
if((x&3)==3) x=x>>2;
else if(x&1) return 0;
else x=x>>1;
}
return 1;
}
int main()
{
while(scanf("%d %d",&h,&w),h|w)
{
if(h&w&1) {printf("0\n");continue;}
if(w>h) w^=h^=w^=h;
ms=1<<w;
memset(dp,0,sizeof(dp));
for(int i=0;i<ms;++i)
if(check(i)) dp[0][i]=1;
for(int i=1;i<h;++i)
for(int j=0;j<ms;++j)
for(int k=0;k<ms;++k)
if((j|k)==ms-1&&dp[0][j&k]) dp[i][k]+=dp[i-1][j];
printf("%lld\n",dp[h-1][ms-1]);
}
return 0;
}