// 2011/10/07 Tazoe

#include <iostream>
using namespace std;

int main()
{
	while(true){
		int X, Y;
		cin >> X >> Y;
		if(X==0&&Y==0)
			break;

		int C[18][17];
		for(int i=0; i<=Y+2; i++)
			for(int j=0; j<=X+1; j++)
				C[i][j] = 1;

		for(int i=1; i<=Y; i++)
			for(int j=1; j<=X; j++)
				cin >> C[i][j];

		for(int i=Y+1; i<=Y+2; i++)
			for(int j=1; j<=X; j++)
				C[i][j] = 0;

		int DP[18][17];
		for(int i=0; i<=Y+2; i++)
			for(int j=0; j<=X+1; j++)
				DP[i][j] = 0;

			for(int j=1; j<=X; j++)
				if(C[1][j]==0)
					DP[1][j] = 1;

		for(int i=2; i<=Y; i++)
			for(int j=1; j<=X; j++)
				if(C[i][j]==0)
					DP[i][j] += (DP[i-1][j-1]+DP[i-1][j]+DP[i-1][j+1]);
				else if(C[i][j]==1)
					DP[i][j] = 0;
				else if(C[i][j]==2){
					if(C[i+2][j]==1)
						DP[i+2][j] = 0;
					else{
						DP[i+2][j] += (DP[i-1][j]+DP[i][j]);
						DP[i][j] = 0;
					}
				}

		int sum = 0;
		for(int i=Y; i<=Y+2; i++)
			for(int j=1; j<=X; j++)
				sum += DP[i][j];

		cout << sum <<endl;
	}

	return 0;
}