#include <bits/stdc++.h>

const int maks = 1000;

using namespace std;

void ispis(int a[][maks], int h, int n){
    for(int i = 0;i < n;i++)
        cout << a[h][i] << " ";
    cout << '\n';
}

void vodopad(int a[][maks], int h, int n){
    int zbir = 0, kolicnik, ostatak;
    for(int i = 1;i <= h;i++){
        for(int j = 0;j < n;j++){
            if(a[i][j] == 1){
                    if(a[i-1][j] != 0)
                        a[i][j] = a[i-1][j];
            }
            else if(a[i][j] == 0){
                if(j == 0){
                    for(int k = j;k < n;k++)
                        if(a[i][k] == 0)
                            zbir += a[i-1][k];
                        else{
                            if(a[i-1][k] == 0)
                                a[i][k] = zbir;
                            else
                                a[i][k] += zbir;
                            zbir = 0;
                            break;
                        }
                }
                else if(j == n - 1){
                    for(int k = n - 1;k >= 0;k--){
                        if(a[i][k] == 0)
                            zbir += a[i-1][k];
                        else{
                            if(a[i-1][k] == 0)
                                a[i][k] = zbir;
                            else
                                a[i][k] += zbir;
                            zbir = 0;
                            break;
                        }
                    }
                }
                else if(j != n - 1 && j != 0){
                    kolicnik = (a[i-1][j]) / 2;
                    ostatak = (a[i-1][j]) % 2;
                    for(int p = j;p < n;p++){
                        if(a[i][p] == 1){
                            if(i%2 == 0){
                                a[i][p] = kolicnik + ostatak;
                            }
                            else
                                a[i][p] = kolicnik;
                            break;
                        }
                    }
                    for(int p = j;p >= 0;p--){
                        if(a[i][p] == 1){
                            if(i%2 != 0){
                                a[i][p] = kolicnik + ostatak;
                            }
                            else
                                a[i][p] = kolicnik;
                            break;
                        }
                    }
                }
            }
        }
    }
    ispis(a, h, n);
}

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