#include <iostream>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;

vector< vector<int> > mg,l,d;
vector<int> v;

int preliv[1000006],p[1000006];

int main()
{
    ios::sync_with_stdio(false);

    int n,m,i,j,k,a,b,x;

    cin>>n>>m;
    // zasto je n*m<=10^6 sad moram da koristim vektor vektora,a ne normalnu matricu n*m,to nije lepo :(
    for(i=0;i<n;i++)
    {
         mg.push_back(v);
        for(j=0;j<m;j++)
        {
            cin>>x;
            mg[i].push_back(x);
        }
    }

    for(i=0;i<n;i++)
    {
        l.push_back(v);   d.push_back(v);
        for(j=0;j<m;j++)
        {
            l[i].push_back(x);   d[i].push_back(x);// samo da bilo sta stavim
            if(mg[i][j]==1) l[i][j]=j;
            else if(mg[i][j]==0 && j==0) l[i][j]=-1;
            else l[i][j]=l[i][j-1];
        }
    }


    for(i=0;i<n;i++)
    {
        for(j=m-1;j>=0;j--)
        {
            if(mg[i][j]==1) d[i][j]=j;
            else if(mg[i][j]==0 && j==m-1) d[i][j]=-1;
            else d[i][j]=d[i][j+1];
        }
    }

    for(i=0;i<m;i++) preliv[i]=1;

    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            x=preliv[j];
            a=l[i][j];  b=d[i][j];
            if(mg[i][j]==1) p[j]+=x;
            else
            {
                if(a==-1) p[b]+=x;
                else if(b==-1) p[a]+=x;
                else if(x%2==0) {p[a]+=x/2;  p[b]+=x/2;}
                else if(i%2==0)  {p[a]+=x/2+1; p[b]=x/2;}
                else   {p[a]+=x/2; p[b]=x/2+1;}
            }
        }

         //cout<<"prelivvv ";
        for(j=0;j<m;j++) {preliv[j]=p[j]; p[j]=0;} //cout<<preliv[j]<<" "; }
        //cout<<endl;
    }


    for(i=0;i<m;i++) cout<<preliv[i]<<" ";

    return 0;
}