#include<cstdio>
#include<iostream>

#define SIZE 15+5

using namespace std;
 
int main(){
    std::ios_base::sync_with_stdio(false);

	int X,Y;
	int course[SIZE+1][SIZE];
	int dp[SIZE+1][SIZE];
	int ans;

	while(1){
		cin>>X>>Y;
		if(X==0&&Y==0) break;

		for(int i=0;i<Y*X;i++) cin>>course[i/X][i%X];
		for(int i=0;i<X;i++) course[Y+1][i]=0;
		for(int i=0;i<(Y+1)*(X);i++) dp[i/X][i%X]=(i/X==0&&course[i/X][i%X]==0)?1:0;

		for(int i=0;i<(Y-1)*X;i++){
			if(dp[i/X][i%X]>0){
				if(course[i/X][i%X]==0){
					if(i%X!=0){
						if(course[i/X+1][i%X-1]==0) dp[i/X+1][i%X-1]+=dp[i/X][i%X];
					}
						if(course[i/X+1][i%X]!=1) dp[i/X+1][i%X]+=dp[i/X][i%X];
						if(i%X!=X-1){
							if(course[i/X+1][i%X+1]==0) dp[i/X+1][i%X+1]+=dp[i/X][i%X];
						}
					}
					else if(course[i/X][i%X]==2){
						if(course[i/X+2][i%X]!=1) dp[i/X+2][i%X]+=dp[i/X][i%X];
					}
				}
		}
		ans=0;
		for(int i=(Y-1)*X;i<(Y+1)*X;i++){
			ans+=dp[i/X][i%X];
		}
		cout<<ans<<endl;
	}
 
 
    return 0;
}