#include<iostream>
using namespace std;
typedef long long int ll;
//typedef int ll;
ll w,h,xd[]={1,0,-1},p,u[20][20],d[20][20];
ll ret(ll x,ll y){
	ll s=x,sum=0;
	if(h-1<=y){
		return 1;
	}
	if(d[y][x]>=1)
		return d[y][x];
	else if(u[y][x]==2)
		return d[y][x]=ret(x,y+2);
	else if(u[y][x]==0){
		y++;
		for(ll i=0;i<3;i++){
			x=s+xd[i];
			if(x>=0&&x<=w-1){
    			if(u[y][x]==2&&i==1)
 	     			sum+=d[y-1][s]=ret(x,y+2);
				else if(u[y][x]==0)
					sum+=d[y-1][s]=ret(x,y);
			}
		}
		return d[y-1][s]=sum;
	}
	return d[y][s]=-1;
}
int main(){
	ll x,y;
	while(cin>>w>>h,w||h){
		p=0;
		for(ll i=0;i<h;i++)
		for(ll j=0;j<w;j++){
			cin>>u[i][j];
			d[i][j]=0;
		}
		for(ll i=0;i<w;i++)
			u[h][i]=0;
		for(ll i=0;i<w;i++){
			if(u[0][i]==0){
				x=i;
				y=0;
				p+=ret(x,y);
			}
			else if(u[0][i]==2){
				x=i;
				y=2;
				p+=ret(x,y);
			}
		}
		cout<<p<<endl;
	}
	return 0;
}