#include <bits/stdc++.h>
using namespace std;
void setup()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int n, m, a, c, res;
int b[300000], num[20];
pair<int, int> super[1 << 20], sub[1 << 20];
inline bool Comp(int ina, int inb, int base)
{
return __builtin_popcount(ina | base) <= __builtin_popcount(inb | base);
}
int main()
{
setup();
for (int i = 0; i < (1 << 20); ++i)
{
sub[i] = super[i] = {-1, -1};
}
cin >> n >> m;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < m; ++j)
{
cin >> a;
num[j] += a;
b[i] += (1 << j) * a;
}
if (super[b[i]].first == -1)
{
super[b[i]].first = i;
}
else
{
super[b[i]].second = i;
}
}
for (int i = 0; i < m; ++i)
{
for (int j = (1 << m) - 1; j >= 0; --j)
{
if (!((j >> i) & 1) && super[j].first != -1)
{
if (super[j + (1 << i)].first == -1)
{
super[j + (1 << i)] = super[j];
}
else if (super[j + (1 << i)].second == -1)
{
super[j + (1 << i)].second = super[j].first;
}
}
}
}
for (int i = 0; i < (1 << m); ++i)
{
sub[i] = super[i];
}
for (int i = 0; i < m; ++i)
{
for (int j = 0; j < (1 << m); ++j)
{
if (((j >> i) & 1) && sub[j].first != -1)
{
if (sub[j - (1 << i)].first == -1)
{
sub[j - (1 << i)] = sub[j];
continue;
}
if (sub[j].first != sub[j - (1 << i)].first && sub[j].first != sub[j - (1 << i)].second)
{
if (Comp(b[sub[j].first], b[sub[j - (1 << i)].first], j - (1 << i)))
{
sub[j - (1 << i)].second = sub[j - (1 << i)].first;
sub[j - (1 << i)].first = sub[j].first;
}
else if (sub[j - (1 << i)].second == -1 ||
Comp(b[sub[j].first], b[sub[j - (1 << i)].second], j - (1 << i)))
{
sub[j - (1 << i)].second = sub[j].first;
}
}
if (sub[j].second != -1 && sub[j].second != sub[j - (1 << i)].second && sub[j].second != sub[j - (1 << i)].first &&
Comp(b[sub[j].second], b[sub[j - (1 << i)].second], j - (1 << i)))
{
sub[j - (1 << i)].second = sub[j].second;
}
}
}
}
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < m; ++j)
{
num[j] -= ((b[i] >> j) & 1);
}
a = res = 0;
for (int j = 0; j < m; ++j)
{
res += (num[j] - 1 >= n / 2);
if (num[j] - 1 >= n / 2 || num[j] < n / 2)
{
a += (1 << j);
}
}
c = (sub[a].first == i ? sub[a].second : sub[a].first);
if (c == -1)
{
cout << res << "\n";
}
else
{
cout << res + m - __builtin_popcount(b[c] | a) << "\n";
}
for (int j = 0; j < m; ++j)
{
num[j] += ((b[i] >> j) & 1);
}
}
return 0;
}