#include <iostream>
#include <vector>

using namespace std;

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

    int n, h;

    cin >> n >> h;

    vector <vector<int>> v;

    v.resize(n + 1);

    v[0].resize(h);

    for(int i = 0; i < h; i++)
    {
        v[0][i] = 1;
    }

    for(int i = 1; i <= n; i++)
    {
        v[i].resize(h);

        for(int j = 0; j < h; j++)
        {
            int broj;

            cin >> broj;

            v[i][j] = broj;
        }
    }

    for(int i = 1; i <= n; i++)
    {
        for(int j = 0; j < h; j++)
        {
            if(v[i][j] == 0)
            {
                continue;
            }

            v[i][j] = 0;

            if(j != 0 && v[i][j - 1] == 0)
            {
                int zbirBloka = 0;

                int pokazivac = j - 1;

                while(pokazivac >= 0)
                {
                    if(v[i][pokazivac] != 0)
                    {
                        break;
                    }

                    zbirBloka += v[i - 1][pokazivac];
                    pokazivac--;
                }

                if(pokazivac == -1)
                {
                    v[i][j] += zbirBloka;
                }

                else if(zbirBloka % 2 == 0)
                {
                    v[i][j] += zbirBloka / 2;
                }

                else
                {
                    if(i % 2 == 1)
                    {
                        v[i][j] += zbirBloka / 2;
                    }

                    else
                    {
                        v[i][j] += zbirBloka / 2 + 1;
                    }
                }
            }

            if(v[i - 1][j] != 0)
            {
                v[i][j] += v[i - 1][j];
            }

            if(v[i][j + 1] == 0)
            {
                int zbirBlokova = 0;

                int pokazivac = j + 1;

                while(pokazivac < h)
                {
                    if(v[i][pokazivac] != 0)
                    {
                        break;
                    }

                    zbirBlokova += v[i - 1][pokazivac];
                    pokazivac++;
                }

                if(pokazivac == h)
                {
                    v[i][j] += zbirBlokova;
                }

                else if(zbirBlokova % 2 == 0)
                {
                    v[i][j] += zbirBlokova / 2;
                }

                else
                {
                    if(i % 2 == 1)
                    {
                        v[i][j] += zbirBlokova / 2 + 1;
                    }

                    else
                    {
                        v[i][j] += zbirBlokova / 2;
                    }
                }
            }
        }
    }

    cout << v[n][0];

    for(int i = 1; i < h; i++)
    {
        cout << " " << v[n][i];
    }

    cout << endl;

    return 0;
}