#include<iostream>
#include<utility>
#include<queue>
#include<functional>
#include<cstring>
#include<vector>
#include<climits>
#include<map>
using namespace std;
#define FOR(i,n) for(int i=0;i<(int)n;i++)
#define FORI(i,k,n) for(int i=k;i<(int)n;i++)
#define ALL(x) (x).begin(),(x).end()
typedef pair<int,int> pii;
typedef vector<int> vi;
#define int long long

main()
{
	while(1)
	{
		int a[20][20];
		int dp[20][20]={};
		int x,y;
		
		cin>>x>>y;if(x==0&&y==0)break;
		FOR(i,20)FOR(j,20)a[i][j]=1;
		FORI(i,1,y+1)
		{
			FORI(j,1,x+1)
			{
				cin>>a[i][j];
			}
		}
		FORI(i,1,x+1)
		{
			if(a[1][i]==0)dp[1][i]=1;
			a[y+1][i]=0;
		}
		FORI(i,1,y)
		{
			FORI(j,1,x+1)
			{
				if(a[i][j]==2&&a[i+2][j]!=1)
				{
					dp[i+2][j]+=dp[i][j];
				}
				else
				{
					for(int k=-1;k<=1;k++)
					{
						if(a[i+1][j+k]==0)
						{
							dp[i+1][j+k]+=dp[i][j];
						}
					}
					if(a[i+1][j]==2)dp[i+1][j]+=dp[i][j];
				}
			}
		}
		
		int ans=0;
		FORI(i,1,x+1)ans+=dp[y][i]+dp[y+1][i];
		cout<<ans<<endl;
		
	}
}