func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, k;   struct node {     int sz;     vector<int> m, M;     node() {       sz = 1;       for (int i = 0; i < k; ++i) {         int tmp;         scanf( %d , &tmp);         m.push_back(tmp);         M.push_back(tmp);       }     }     bool operator<(const node &nd) const {       for (int i = 0; i < k; ++i) {         if (M[i] > nd.m[i]) return false;       }       return true;     }     void merge(const node &nd) {       for (int i = 0; i < k; ++i) {         m[i] = min(m[i], nd.m[i]);         M[i] = max(M[i], nd.M[i]);       }       sz += nd.sz;     }   };   set<node> st;   int main() {     scanf( %d%d , &n, &k);     for (int i = 0; i < n; ++i) {       node nd = node();       auto lb = st.lower_bound(nd), ub = st.upper_bound(nd);       while (lb != ub) {         nd.merge(*lb);         lb = st.erase(lb);       }       st.insert(nd);       printf( %d n , (st.rbegin())->sz);     }     return 0;   }   