#include<cstdio>

using namespace std;

int run[15][15],w,h;

int ski(int x,int y,bool s)	// s : go straight in previous step?
{
	if(y>=h)			return 1;
	if(run[y][x]==1)	return 0;
	if(run[y][x]==2){
		if(s)	return ski(x,y+2,true);
		else	return 0;
	}

	// plane slope (run[y][x]==0)
	if(y==h-1)	return 1;

	int cnt=0;
	for(int dx=-1;dx<=1;dx++){
		int xx=x+dx;
		if(0<=xx && xx<w)	cnt+=ski(xx,y+1,!dx);
	}
	return cnt;
}

int main()
{
	for(;scanf("%d%d",&w,&h),w;){
		for(int y=0;y<h;y++)
			for(int x=0;x<w;x++)
				scanf("%d",run[y]+x);

		int cnt=0;
		for(int x=0;x<w;x++)	cnt+=ski(x,0,true);
		printf("%d\n",cnt);
	}

	return 0;
}