#include <iostream>
#include <algorithm>
#include <iomanip>

using namespace std;

char mapData[15][15];
int dp[15][15];
int h, w;
int dx[] = {-1, 0, 1};

int main(){
  while(cin >> w >> h && (h || w)){ 
    for(int i=0;i<h;i++){
      for(int j=0;j<w;j++){
	cin >> mapData[i][j];
      }
    }
    fill(dp[0], dp[15], 0);
    for(int i=0;i<w;i++){
      if(mapData[0][i] != '1')
	dp[0][i] = 1;
    }
    for(int i=0;i<h;i++){
      for(int j=0;j<w;j++){
	if(dp[i][j] == 0) continue;
	if(mapData[i][j] == '2'){
	  int ty = i + 2;
	  if(ty<0 || ty>=h) continue;
	  if(mapData[ty][j] == '1') continue;
	  dp[ty][j] += dp[i][j];
	}else{
	  for(int k=0;k<3;k++){
	    int ty = i + 1;
	    int tx = j + dx[k];
	    if(ty<0 || ty>=h) continue;
	    if(tx<0 || tx>=w) continue;
	    if(mapData[ty][tx] == '1') continue;
	    if(mapData[ty][tx] == '2' && k != 1) continue;
	    dp[ty][tx] += dp[i][j];
	  }
	}
      }
    }
    int ans = 0;
    for(int i=0;i<w;i++){
      if(mapData[h-2][i] == '2') ans += dp[h-2][i];
      if(mapData[h-1][i] != '1') ans += dp[h-1][i];
    }
    cout << ans << endl;
  }
  return 0;
}