#include <bits/stdc++.h>
using namespace std;
struct SCC {
  vector<pair<int, int>> minmax;
  int size;
  SCC(vector<int> v) {
    minmax.resize(v.size());
    for (int i = 0; i < (int)v.size(); i++) {
      minmax[i].first = v[i];
      minmax[i].second = v[i];
    }
    size = 1;
  }
  bool operator<(SCC const& other) const {
    for (int i = 0; i < (int)minmax.size(); i++) {
      if (other.minmax[i].first < minmax[i].second) return false;
    }
    return true;
  }
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n, k;
  cin >> n >> k;
  set<SCC> s;
  for (int i = 0; i < n; i++) {
    vector<int> v(k);
    for (int i = 0; i < k; i++) {
      cin >> v[i];
    }
    SCC scc(v);
    auto a = s.lower_bound(scc);
    auto b = s.upper_bound(scc);
    if (a != b) {
      auto x = a;
      while (x != b) {
        for (int K = 0; K < k; K++) {
          scc.minmax[K].first = min(scc.minmax[K].first, x->minmax[K].first);
          scc.minmax[K].second = max(scc.minmax[K].second, x->minmax[K].second);
        }
        scc.size += x->size;
        x++;
      }
      s.erase(a, b);
    }
    s.insert(scc);
    cout << s.rbegin()->size << '\n';
  }
}
