#include <iostream>

using namespace std;
void ispisi(long long arr[],long long n){
    for(long long i=0;i<n;i++){
        cout<<arr[i]<<" ";
    }
    cout<<endl;
}
int main()
{
    long long n,h;
    cin>>h;
    cin>>n;
    long long mat[h][n];
    long long arr[n];
    for(long long i=0;i<h;i++){
        for(long long j=0;j<n;j++){
            cin>>mat[i][j];
        }
    }


    long long pom[h][n];
    for(long long i=0;i<h;i++){
        for(long long j=0;j<n;j++){
            pom[i][j]=mat[i][j];
        }
    }

    for(long long i=0;i<h-1;i++){
        long long k=0;
        long long m=n-1;
        for(;k<m;k++){
            if(pom[i][k]==0){
                mat[i][k+1]+=mat[i][k];
            }
            else break;
        }
        for(;m>k;m--){
            if(pom[i][m]==0){
                mat[i][m-1]+=mat[i][m];
            }
            else break;
        }
        if(m==k){
            mat[i+1][k]+=mat[i][k];
        }
        else if(m-1==k){
            mat[i+1][k]+=mat[i][k];
            mat[i+1][m]+=mat[i+1][m];
        }
        else{
            for(long long j=k+1;j<m;j++){
                if(pom[i][j]==0){
                    if(mat[i][j]%2 && i%2){
                        mat[i][j-1]+=mat[i][j]/2;
                        mat[i][j+1]+=mat[i][j]/2+1;
                    }
                    else if(mat[i][j]%2){
                        mat[i][j-1]+=mat[i][j]/2+1;
                        mat[i][j+1]+=mat[i][j]/2;
                    }
                    else{
                        mat[i][j+1]+=mat[i][j]/2;
                        mat[i][j-1]+=mat[i][j]/2;
                    }
                }
                else{
                    mat[i+1][j]+=mat[i][j];
                }
            }
            mat[i+1][k]+=mat[i+1][k];
            mat[i+1][m]+=mat[i+1][m];
        }
    }
    long long k=0;
    long long m=n-1;
    long long kr=h-1;
    for(;k<m;k++){
        if(pom[kr][k]==0){
            mat[kr][k+1]+=mat[kr][k];
        }
        else break;
    }
    for(;m>k;m--){
        if(pom[kr][m]==0){
            mat[kr][m-1]+=mat[kr][m];
        }
        else break;
    }
    if(k==m){
        arr[k]=mat[kr][k];
        for(long long i=0;i<n;i++){
            if(pom[kr][i]==0) arr[i]=0;
        }
        ispisi(arr,n);
        return 0;
    }
    else if(k+1==m){
        arr[k]=mat[kr][k];
        arr[m]=mat[kr][m];
        for(long long i=0;i<n;i++){
            if(pom[kr][i]==0) arr[i]=0;
        }
        ispisi(arr,n);
        return 0;
    }
    else{
        for(long long j=k+1;j<n;j++){
            if(pom[kr][j]==0){
                    if(mat[kr][j]%2 && kr%2){
                        mat[kr][j-1]+=mat[kr][j]/2;
                        mat[kr][j+1]+=mat[kr][j]/2+1;
                    }
                    else if(mat[kr][j]%2){
                        mat[kr][j-1]+=mat[kr][j]/2+1;
                        mat[kr][j+1]+=mat[kr][j]/2;
                    }
                    else{
                        mat[kr][j+1]+=mat[kr][j]/2;
                        mat[kr][j-1]+=mat[kr][j]/2;
                    }
                }
        }
        for(long long i=0;i<n;i++){
            arr[i]=mat[kr][i];
        }
        for(long long i=0;i<n;i++){
            if(pom[kr][i]==0) arr[i]=0;
        }
        if((h-1)%2){
            for(long long i=0;i<n;i++){
                if(pom[h-1][i]==0){
                    long long br=0;
                    for(long long j=i+1;j<n;j++){
                        if(pom[h-1][j]==0) br++;
                    }
                }
            }
        }
        ispisi(arr,n);
    }

    return 0;
}