#include <bits/stdc++.h>

using namespace std;

static void autizam(vector<int> &stene, vector<int> &protok, int n, bool paran){
    vector<int> novost(n, 0);
    int leva_granica = -1;
    int zbir = 0;

    for(int i = 0; i < n; i++){
        if(protok[i] > 0){
            if(stene[i] != -1){
                novost[i] += protok[i];
                novost[i] += zbir;
                zbir = 0;
                leva_granica = i;
            }
            else
            {
            if(leva_granica < 0){
                zbir += protok[i];
            }
            else{
                if(protok[i] % 2 == 0){
                    novost[leva_granica] += protok[i] / 2;
                    zbir += protok[i] / 2;
                }
                else{
                    if(!paran){
                        novost[leva_granica] += protok[i] / 2 + 1;
                        zbir += protok[i] / 2;
                    }
                    else{
                        zbir += protok[i] / 2 + 1;
                        novost[leva_granica] += protok[i] / 2;
                    }
                }
            }
            }
        }
        else if(stene[i] != -1){
            novost[i] += zbir;
                zbir = 0;
                leva_granica = i;
        }
    }
    if(zbir > 0)
            novost[leva_granica] += zbir;
    protok = novost;
}

int main()
{
    int h, n;
    cin >> h >> n;

    vector<vector<int>> vodopad (h, vector<int>(n));
    for(int i = 0; i < h; i++){
        for(int j = 0; j < n; j++){
            int k;
            cin >> k;
            vodopad[i][j] = k - 1;
        }
    }
    vector<int> protok(n, 1);
    for(int i = 0; i < h; i++){
        autizam(vodopad[i], protok, n, i % 2 == 1);
    }
    for(int i = 0; i < n; i++){
        cout << protok[i] << " ";
    }
    return 0;
}