#include<string.h>
#include 
<stdio.h>

int m, n;
__int64 f[
12][2048];
__int64 g[
12][12];

void DFS(int i, int j, int j2, int m2)
{
    
if(m2 == m)
        f[i
+1][j2]+=f[i][j];
    
else if((j2&(1<<m2))==0)
    

        DFS(i,j,j2 
| (1<<m2),m2+1);
        
if(m2<m-1 && (j2&(1<<(m2+1)))==0)DFS(i,j,j2,m2+2);
    }

    
else
    
{
        DFS(i,j,j2
&~(1<<m2),m2+1);
    }

}



int main()
{    

    
{
        
for(m=1;m<=11;m++)
        
{

        
int i, j;
        memset(f,
0,sizeof(f));
        f[
0][0]=1;
        
for (i=0; i<11; i++)
        
{
            
for (j=0; j<(1<<m); j++)
                
if(f[i][j])
                    DFS(i,j,j,
0);

            g[i
+1][m]=f[i+1][0];
        }

    
//    printf("(%d,%d)=%I64d   \n",n,m,g[n][m]);
        }

    
//    printf("\n");
    }

    
while(scanf("%d%d",&n,&m)==2)
    
{
        
if(m==0 && n==0)break;
        printf(
"%I64d\n",g[n][m]);
    }

    
return 0;
}