#include <iostream>

using namespace std;

int main()
{
	int n, h;
	cin >> h >> n;

	int mat[100][100];
	
	for (int i = 0; i < h; i++) {
		for (int j = 0; j < n; j++)
			cin >> mat[i][j];
	}

	int niz[100];

	for (int i = 0; i < n; i++) niz[i] = 1;

	for (int i = 0; i < h; i++) {
		for (int j = 0; j < n; j++)
			if (mat[i][j] == 0)
			{
				if (mat[i][j + 1] != 0)
				{
					if (j - 1 < 0)
					{
						niz[j + 1] += niz[j];
						niz[j] = 0;
					}
					else if (j + 1 == n)
					{
						niz[j - 1] += niz[j];
						niz[j] = 0;
					}


					else if ((j + 1) % 2 == 0 && j + 1 <= n)
					{
						niz[j + 1] += niz[j] / 2 + niz[j] % 2;
						niz[j - 1] += niz[j] / 2;
						niz[j] = 0;
					}
					else if ((j + 1) % 2 == 1 && j + 1 <= n)
					{
						niz[j - 1] += niz[j] / 2 + niz[j] % 2;
						niz[j + 1] += niz[j] / 2;
						niz[j] = 0;
					}

				}
				else {
					int k = j;
					int desno = 0, levo = 0;
					while (mat[i][k] == 0) {
						k++;
						if (k % 2 == 0)
						{
							desno += niz[k] / 2 + niz[k] % 2;
							levo += niz[k] / 2;
						}
						else
						{
							levo += niz[k] / 2 + niz[k] % 2;
							desno += niz[k] / 2;

						}
						niz[k] = 0;
					}
					
					cout << desno + levo << endl;
					if (j == 0) {
						niz[k - j] += desno + levo + 1;
						niz[0] = 0;
					}
					else if (k == n) niz[j-1] = desno + levo;

					else if ((k - j + 1) % 2 == 0)
					{
						niz[j - 1] += levo;
						niz[k] += desno;
					}
					else if ((k - j + 1) % 2 == 1)
					{
						if ((k + j + 1) % 2 == 0)
						{
							niz[k] += (desno + levo) / 2 + (desno + levo) % 2;
							niz[j - 1] += (desno + levo) / 2;
						}
						else
						{
							niz[j - 1] += (desno + levo) / 2 + (desno + levo) % 2;
							niz[k] += (desno + levo) / 2;
						}
					}

					j = k;

					
				}
				


			}
	}

	for (int i = 0; i < n; i++)  cout << niz[i] << ' ';
	



}