#include<vector>
#include<list>
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
int f(int a[][15],int b[][15],int x,int y,int e,int n){
  int z=0;
  if(y>e-1)
    return 1;
  if(a[x][y]==-1)
    return 0;
  if(a[x][y]==-2){
    if(n)
      return 0;
  }
  if(y==e-1){
    if(a[x][y]==0)
      return 1;
    if(a[x][y]==-2){
      if(n==0)
	return 1;
    }
  }
  if(b[x][y]!=-1)
    return b[x][y];
  if(a[x][y]==-2)
    z+=f(a,b,x,y+2,e,0);
  else{
    z+=f(a,b,x-1,y+1,e,1);
    z+=f(a,b,x,y+1,e,0);
    z+=f(a,b,x+1,y+1,e,1);
  }
  b[x][y]=z;
  return z;
}
int main(){
  int i,j;
  int a[17][15],b[17][15],x,y,z;
  memset(a,-1,sizeof(a));
  while(cin>>x>>y&&x&&y){
    for(i=0;i<y;i++){
      for(j=0;j<x;j++){
	cin>>a[j+1][i];
	a[j+1][i]*=-1;
      }
    }
    memset(b,-1,sizeof(b));
    z=0;
    for(i=0;i<x;i++){
      if(a[i+1][0]!=-1)
	z+=f(a,b,i+1,0,y,0);
    }
    cout<<z<<endl;
  }
  return 0;
}