#include <bits/stdc++.h>
#define M 100

using namespace std;

int pocetak(int a[][M],int j,int i,int n){
      while(a[i][j]!=1&&j>=0){
         j--;
      }
      return j+1;

}
int kraj(int a[][M],int j,int i,int n){
      while(a[i][j]!=1&&j<n){
         j++;
      }
      return j-1;

}
void stena(int p[][M],int i,int j,int n,int h,int a[][M]){
    int pomjp=j,pomjk=j;
    pomjp=pocetak(a,pomjp,i,n);
    pomjk=kraj(a,pomjk,i,n);
    int rez=0;
    for(int pom=pomjp;pom<=pomjk;pom++){
        rez+=p[i-1][pom];
    }
    if(pomjp==0)
        p[i][pomjk+1]+=rez;
    else if(pomjk==n-1)
        p[i][pomjp-1]+=rez;
    else{
        if(rez%2==0){
            p[i][pomjp-1]+=rez/2;
            p[i][pomjk+1]+=rez/2;
        }
        else{
        if((i-1)%2!=0)
        {
            p[i][pomjp-1]+=rez/2+1;//postavlja levo
            p[i][pomjk+1]+=rez/2;
        }
        else{
             p[pomjp-1][j-1]+=rez/2;
             p[i][pomjk+1]+=rez/2+1;//postavlja desno
        }
      }
    }
}
void vodopad(int a[][M],int p[][M],int n,int h){
    for(int i=1;i<=h;i++)
    for(int j=0;j<n;j++){
        if(a[i][j]==1)
            p[i][j]+=p[i-1][j];
        else{
        stena(p,i,j,n,h,a);
        j=kraj(a,j,i,n);
    }
    }
    for(int i=0;i<n;i++)
        cout << p[h][i] << " ";
    cout << '\n';


}

int main()
{
    ios::sync_with_stdio(false);
   int n,h;
   cin >> h >> n;
   int a[h][M];
   for(int i=1;i<=h;i++)
    for(int j=0;j<n;j++)
            cin >> a[i][j];
   int p[h+1][M];
   for(int i=0;i<n;i++)
    p[0][i]=1;
   for(int i=1;i<=h;i++)
    for(int j=0;j<n;j++)
        p[i][j]=0;
    vodopad(a,p,n,h);
    return 0;

}