using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Zadatak_3
{
    class Program
    {
        static void Main(string[] args)
        {
            string ucitaj = Console.ReadLine();
            string[] pom = ucitaj.Split(' ');
            int h = Convert.ToInt32(pom[0]);
            int n = Convert.ToInt32(pom[1]);
            int[,] hn = new int[h,n];
            int[,] matr = new int[h, n];
            for(int i=0;i<h;i++)
            {
                string ucitaj_red = Console.ReadLine();
                string[] pomocni = ucitaj_red.Split(' ');
                for (int j=0;j<n;j++)
                {
                    hn[i, j] = Convert.ToInt32(pomocni[j]);
                    if (i == 0)
                    {
                        matr[i, j] = 1;
                    }
                    else
                    matr[i, j] = 0;
                }
            }
            PrviRedBezUzastopnih(hn, matr, h, n);
            Console.WriteLine();
            for(int k=1;k<n;k++)
            {
                BezUzastopnih(hn, matr, h, n, k);
            }
            Stampaj(matr, h, n);
        }
        static void PrviRedBezUzastopnih(int[,] a,int[,] b,int n,int m)
        {
            int i;
            for(i=0;i<m;i++)
            {
               if(i==0&&a[0,i]==0)
                {
                    b[0, i] = 0;
                    b[0, i + 1] += 1;
                }
               if(i==m-1&&a[0,i]==0)
                {
                    b[0, i] = 0;
                    b[0, i - 1] += 1;
                }
               if(a[0,i]==0&&i!=0&&i!=m-1)
                {
                    b[0,i] = 0;
                    b[0, i - 1] += 1;
                }
            }
        }
        static void BezUzastopnih(int[,]a,int[,]b,int n,int m,int br_reda)
        {
            int i;
            for (i = 0; i < m; i++)
            {
                if (a[br_reda, i] == 1)
                {
                    b[br_reda, i] += b[br_reda - 1, i];
                }
                if (i==0&&a[br_reda,i]==0)
                {
                    b[br_reda, i + 1] = b[br_reda - 1, i] + b[br_reda - 1, i + 1];
                    i++;
                }
                if(i==m-1&&a[br_reda,i]==0)
                {
                    b[br_reda, i - 1] += b[br_reda - 1, i];
                }
                if(a[br_reda,i]==0&&i!=0&&i!=m-1)
                {
                    if(b[br_reda-1,i]%2==0)
                    {
                        b[br_reda, i - 1] += b[br_reda-1, i] / 2;
                        b[br_reda, i + 1] += b[br_reda - 1, i] / 2;
                    }
                    else if(br_reda%2==0)
                    {
                        b[br_reda, i - 1] += b[br_reda - 1, i] / 2 + 1;
                        b[br_reda, i + 1] += b[br_reda - 1, i] / 2;
                    }
                    else
                    {
                        b[br_reda, i - 1] += b[br_reda - 1, i] / 2;
                        b[br_reda, i + 1] += b[br_reda - 1, i] / 2 + 1;
                    }
                }
            }
        }