#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;

int main() {
    int x, y, c[20][20]{};
    ll dp[20][20];
    while(cin >> x >> y, x){
        for(int i=0;i<y;i++){
            for(int j=0;j<x;j++){
                cin >> c[i][j];
            }
        }
        for(int i=1;i<y+2;i++) fill(dp[i], dp[i]+x, 0LL);
        fill(dp[0], dp[0]+x, 1);
        for(int i=0;i<y-1;i++){
            for(int j=0;j<x;j++){
                if(c[i][j]==1) continue;
                if(c[i][j]==2) dp[i+2][j] += dp[i][j];
                else{
                    if(j-1>=0 && c[i+1][j-1]==0) dp[i+1][j-1] += dp[i][j];
                    if(j+1<x && c[i+1][j+1]==0) dp[i+1][j+1] += dp[i][j];
                    if(c[i+1][j] != 1) dp[i+1][j] += dp[i][j];
                }
            }
        }
        int ans = 0;
        for(int i=y-1;i<=y+1;i++){
            for(int j=0;j<x;j++){
                if(c[i][j] != 1) ans += dp[i][j];
            }
        }
        cout << ans << endl;
    }
    return 0;
}



