#include<iostream>
using namespace std;
int dp[16][15];
int h,w;
int map[16][15];
main()
{
	while(cin>>w>>h,w)
	{
	    for(int i=0;i<=h;i++)for(int j=0;j<w;j++)map[i][j]=0;
		for(int i=0;i<h;i++)
		{
			for(int j=0;j<w;j++)
			{
				cin>>map[i][j];
			}
		}
		for(int i=0;i<=h;i++)for(int j=0;j<w;j++)dp[i][j]=0;
		for(int i=0;i<w;i++)dp[0][i]=map[0][i]==0;
		for(int i=0;i<h;i++)
		{
			for(int j=0;j<w;j++)
			{
				if(dp[i][j]==0||map[i][j]==1)continue;
				if(map[i][j]==2)
				{
					dp[i+2<=h?i+2:h][j]+=dp[i][j];
					continue;
				}
				if(i<h-1&&j>0)
				{
					if(map[i+1][j-1]==0)dp[i+1][j-1]+=dp[i][j];
				}
				if(i<h-1&&j<w-1)
				{
					if(map[i+1][j+1]==0)dp[i+1][j+1]+=dp[i][j];
				}
				if(map[i+1][j]!=1)dp[i+1][j]+=dp[i][j];
			}
		}
		int ans=0;
		for(int j=0;j<w;j++)ans+=dp[h][j];
		cout<<ans<<endl;
	}
}

