#include <bits/stdc++.h>

using namespace std;

static pair<bool, int> imaLevo(vector<vector<int>> &vodopad, int x, int y){
    for(int i = y - 1; i >= 0; i--){
        if(vodopad[x + 1][i] != -1)
            return make_pair(true, i);
    }
    return make_pair(false, -1);
}
static pair<bool, int> imaDesno(vector<vector<int>> &vodopad, int x, int y, int n){
    for(int i = y + 1; i < n; i++){
        if(vodopad[x + 1][i] != -1)
            return make_pair(true, i);
    }
    return make_pair(false, -1);
}

static void prenesiVodu(vector<vector<int>> &vodopad, int x, int y, int n){
    if(vodopad[x + 1][y] != -1)
        vodopad[x + 1][y] += vodopad[x][y];
    else{
        pair<bool, int> levo = imaLevo(vodopad, x, y);
        pair<bool, int> desno = imaDesno(vodopad, x, y, n);
        if(!levo.first)
            vodopad[x + 1][desno.second] += vodopad[x][y];
        else if(!desno.first)
            vodopad[x + 1][levo.second] += vodopad[x][y];
        else{
            if(vodopad[x][y] % 2 == 0){
                vodopad[x + 1][desno.second] += (vodopad[x][y] / 2);
                vodopad[x + 1][levo.second] += (vodopad[x][y] / 2);
            }
            else{
                vodopad[x + 1][desno.second] += (vodopad[x][y] / 2);
                vodopad[x + 1][levo.second] += (vodopad[x][y] / 2);
                if(x % 2 == 0)
                    vodopad[x + 1][levo.second]++;
                else
                    vodopad[x + 1][desno.second]++;
            }
        }
    }
}

int main()
{
    int h, n;
    cin >> h >> n;
    vector<vector<int> > vodopad(h + 1, vector<int> (n));
    for(int i = 0; i < n; i++){
        vodopad[0][i] = 1;
    }
    for(int i = 1; i <= h; i++){
        for(int j = 0; j < n; j++){
            int k;
            cin >> k;
            vodopad[i][j] = k - 1;
        }
    }

    for(int i = 0; i < h; i++){

        for(int j = 0; j < n; j++){
            if(vodopad[i][j] > 0)
                prenesiVodu(vodopad, i, j, n);
        }
    }


    for(int i = 0; i < n; i++){
        if(vodopad[h][i] == -1)
            cout << 0 << " ";
        else
            cout << vodopad[h][i] << " ";
    }

    /*
    for(int i = 0; i <= h; i++){
        for(int j = 0; j < n; j++){
            cout << vodopad[i][j] << " ";
        }
        cout << endl;
    }
    */
}