#include <iostream>

using namespace std;

class polje
{
    public:
        int broj;
        bool nula;
};

int main()
{
    int h,n;
    cin >>h>>n;
    int niz[n];
    int kolicina1,kolicina2;
    polje mat[h+1][n];
    for (int i = 0; i<n; i++)
        {
            mat[0][i].broj = 1;
            mat[0][i].nula = false;
        }
    for (int i = 1; i<=h; i++)
        for (int j = 0; j<n; j++)
            {
                cin >>mat[i][j].broj;
                if (mat[i][j].broj==0)mat[i][j].nula = true;
                else mat[i][j].nula = false;
            }
    for (int i = 0; i<n; i++)
        niz[i] = mat[0][i].broj;

    for (int i = 1; i<=h; i++)
        {
            for (int j = 0; j<n; j++)
            {
                mat[i][j].broj = niz[j];
                if (mat[i][j].nula)
                {
                    kolicina1 = (mat[i][j].broj/2)+(mat[i][j].broj%2);
                    kolicina2 = mat[i][j].broj/2;

                    int a = j, b = j;
                    if (i%2==1)
                    {
                        while (mat[i][a].nula && a>0)
                        {
                            mat[i][a-1].broj+=kolicina1;
                            a--;
                        }
                        while (mat[i][b].nula && b<n-1 && kolicina2!=0)
                        {
                            mat[i][b+1].broj+=kolicina2;
                            b++;
                        }
                        if (a == 0 && mat[i][0].nula)
                        {
                            while (mat[i][a].nula)
                            {
                                mat[i][a+1].broj = mat[i][a+1].broj + kolicina1;
                                a++;
                            }
                        }
                        if (b == n-1 && mat[i][n-1].nula)
                        {
                            while (mat[i][b].nula)
                            {
                                mat[i][b-1].broj+=kolicina2;
                                b--;
                            }
                        }
                    }
                    a = j;
                    b = j;
                    if (i%2==0)
                    {
                        while ((mat[i][b].nula && b<n-1))
                        {
                            mat[i][b + 1].broj+=kolicina1;
                            b++;
                        }
                        while (mat[i][a].nula && a>0 && kolicina2!=0)
                        {
                            mat[i][a-1].broj+=kolicina2;
                            a--;
                        }
                        if (a == 0 && mat[i][0].nula)
                        {
                            while (mat[i][a].nula)
                            {
                                mat[i][a+1].broj+=kolicina2;
                                a++;
                            }
                        }
                        if (b == n-1 && mat[i][n-1].nula)
                        {
                            while (mat[i][b].nula)
                            {
                                mat[i][b-1].broj+=kolicina1;
                                b--;
                            }
                        }
                    }

                    mat[i][j].broj = 0;


                }
            }
            for (int x = 0; x<n; x++)
                niz[x] = mat[i][x].broj;

        }



        for (int i = 1; i<h+1; i++)
            {
                for (int j = 0; j<n; j++)
                    cout <<mat[i][j].broj <<" ";
                cout <<endl;
            }
    return 0;
}
//Znam da nije dobro, cenite trud :)