#include <bits/stdc++.h>

#define endl "\n"

using namespace std;

int main()
{
    ios::sync_with_stdio(false); cin.tie(0);

    long h,w; cin >> h >> w;
    bool a[h][w];
    for(int i=0;i<h;i++) {
        for(int j=0;j<w;j++) {
            int u; cin >> u;
            if(u) a[i][j]=false; // 0 prazno
            else a[i][j]=true;
        }
    }

    long b[2][w];
    for(int i=0;i<w;i++) {
        b[0][i]=1;
        b[1][i]=0;
    }

    for(int i=0;i<h;i++) {
        long lstena=-1,dstena=-1;
        bool nasol=false;
        bool uradistenu=false;
        long zbirstena=0;

        for(int j=0;j<w;j++) {
            if(!a[i][j]) {
                b[1][j]+=b[0][j];
                uradistenu=false;
            }
            else {
                zbirstena+=b[0][j];
                if(nasol) {
                    dstena=j;
                    if(j==w-1 || !a[i][j+1])
                        uradistenu=true;
                }
                if(!nasol) {
                    nasol=true;
                    lstena=j;
                    dstena=j;
                    if(j==w-1 || !a[i][j+1])
                        uradistenu=true;
                //
                }
                //
            }
            if(uradistenu) {
                //zbirstena=0;
                //for(int k=lstena;k<=dstena;k++)
                //    zbirstena+=b[0][k];
                if(!lstena)
                    b[1][dstena+1]+=zbirstena;
                else if(dstena==w-1)
                    b[1][lstena-1]+=zbirstena;
                else {
                    if(zbirstena%2) {
                        if((i+1)%2) {
                            b[1][lstena-1]+=zbirstena/2+1;
                            b[1][dstena+1]+=zbirstena/2;
                        }
                        else {
                            b[1][lstena-1]+=zbirstena/2;
                            b[1][dstena+1]+=zbirstena/2+1;
                        }
                    }
                    else {
                        b[1][lstena-1]+=zbirstena/2;
                        b[1][dstena+1]+=zbirstena/2;
                    }
                }
                uradistenu=false;
                nasol=false;
                zbirstena=0;
            }
        }
        for(int qwe=0;qwe<w;qwe++) {
            b[0][qwe]=b[1][qwe];
            b[1][qwe]=0;
        }
    }

    for(int i=0;i<w;i++)
        cout << b[0][i] << " ";

    return 0;
}