#include <iostream>
using namespace std;

int dx[]={-1,0,1};

int main()
{
	int X,Y;
	while(cin >> X >> Y, (X||Y))
	{
		int f[15][17]={0}, dp[15][17]={0};
		for(int i=0; i<Y; i++)
		for(int j=0; j<X; j++)
			cin >> f[j][i];
			
		for(int i=0; i<X; i++)
			if(f[i][0]==0) dp[i][0]=1;
			
		for(int i=0; i<Y-1; i++)
		for(int j=0; j<X; j++)
		{
			if(dp[j][i]==0) continue;
			if(f[j][i]==2)
			{
				int ty=i+2;
				if(f[j][ty]!=1)
					dp[j][ty]+=dp[j][i];
				
				continue;
			}
			
			for(int k=0; k<3; k++)
			{
				int tx=j+dx[k];
				if(tx<0||tx>=X) continue;
				if(f[tx][i+1]==1) continue;
				if(k!=1&&f[tx][i+1]==2) continue;
				
				dp[tx][i+1]+=dp[j][i];
			}
		}
		
		int ans=0;
		for(int j=-1; j<2; j++)
		for(int i=0; i<X; i++)
			ans+=dp[i][Y+j];
			
		cout << ans << endl;
	}
}