#include <bits/stdc++.h>
using namespace std;
#define MP make_pair
#define PB push_back
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define REP(i,n) for (int i=0;i<(n);i++)
int X,Y;
int fld[15][15];
int dp[15][15];
int main() {
	while(cin>>X>>Y&&X&&Y){
		for(int i=0;i<Y;i++)for(int j=0;j<X;j++)cin>>fld[j][i];
		int ans=0;
		for(int i=0;i<X;i++)if(fld[i][Y-1]!=1)dp[i][Y-1]=1;
		for(int y=Y-2;y>=0;y--){
			for(int x=0;x<X;x++){
				if(fld[x][y]==0){
					for(int k=-1;k<=1;k++){
						int nx=x+k;
						if(nx<0||nx>=X)continue;
						if(nx==x&&fld[nx][y+1]!=1)dp[x][y]+=dp[nx][y+1];
						else if(fld[nx][y+1]==0)dp[x][y]+=dp[nx][y+1];
					}
				}else if(fld[x][y]==2){
					if(y+2>=Y)dp[x][y]=1;
					else dp[x][y]=dp[x][y+2];
				}
				if(y==0)ans+=dp[x][y];
			}
		}
		cout<<ans<<endl;
	}
}