#include #define rep(i,a,b) for(int i=a;i=b;i--) #define fore(i,a) for(auto &i:a) #define all(x) (x).begin(),(x).end() #pragma GCC optimize ("-O3") using namespace std; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); _main(); } typedef long long ll; const int inf = INT_MAX / 2; const ll infl = 1LL << 60; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b win[10]; int cnt[101010]; //--------------------------------------------------------------------------------------------------- void _main() { cin >> N >> M; rep(i, 0, N) rep(m, 0, M) cin >> R[i][m]; rep(m, 0, M) ma[m] = R[0][m]; rep(m, 0, M) win[m].push_back(0); cnt[0] = M; printf("1\n"); int ans = 1; rep(i, 1, N) { rep(m, 0, M) { if (ma[m] == R[i][m]) { win[m].push_back(i); cnt[i]++; if (cnt[i] == 1) ans++; } else if (ma[m] < R[i][m]) { fore(j, win[m]) { cnt[j]--; if (cnt[j] == 0) ans--; } win[m].clear(); ma[m] = R[i][m]; win[m].push_back(i); cnt[i]++; if (cnt[i] == 1) ans++; } } printf("%d\n", ans); } }