#include <bits/stdc++.h>

using namespace std;

int duzina(int i, int j, vector<bool> voda[], int n){
	for(;0==voda[i][j] && j<n ;j++);
	return j;
}
//dobar


void tok(int l, int d, int b, vector<int> t[], int n){
	int s=0;
	for(int i=l; i<d; i++){
		s+=t[b][i];
	//	cout<<t[b][i]<<'\t';
		t[b][i]=0;
	}
	/*cout<<"s= "<<s<<" ";*/
	if(!l)
		t[b][d]+=s;
	if(!(d-n))
		t[b][l-1]+=s;
	if(l && n-d){
		t[b][l-1]+=s/2+(s%2)*(b%2);
		t[b][d]+=s/2+(s%2)*((b+1)%2);
	}
}
//gde je stena tu se povecava za 1

vector<int> t[1000005];
vector<bool> voda[1000005];

int main(){
	int n, h;
	cin>>h>>n;
	
	for(int i=0; i<=h+3; i++)
		for(int j=0; j<=n+3; j++)
			t[i].push_back(0);
	for(int i=1; i<=h; i++)
		for(int j=0; j<n; j++){
			int x;
			cin>>x;
			voda[i].push_back(x);
		}
	
	for(int i=0; i<n; i++)
		t[1][i]=1;
		
	for(int i=1; i<=h; i++){
		for(int j=0; j<n; j++){
			if(i>1)t[i][j]+=t[i-1][j]*voda[i-1][j];
			/*if(voda[i][j]==0){
				int k=duzina(i, j, voda, n);
				tok(j, k, i, t, n);
				cout<<"j="<<j<<' '<<"k="<<k<<endl;
				j=k-1;
			}*/
		}
		for(int j=0; j<n; j++){
			if(voda[i][j]==0){
				int k=duzina(i, j, voda, n);
				tok(j, k, i, t, n);
				/*cout<<"j="<<j<<' '<<"k="<<k<<endl;
				j=k-1;*/
			}
		}
		/*for(int j=0; j<n; j++)
			cout<<"---"<<t[i][j]<<' ';cout<<endl;*/
	}
	
	for(int i=0; i<n; i++)
		cout<<t[h][i]<<' ';
	return 0;
}