func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 1003;   int n, k;   int pos[5][maxn];   int dp[maxn];   bool vis[maxn];   vector<int> v[maxn];   int dfs(int cur) {     if (vis[cur]) return dp[cur];     vis[cur] = true;     for (int i = 0; i < v[cur].size(); i++) {       int nxt = v[cur][i];       dp[cur] = max(dp[cur], 1 + dfs(nxt));     }     return dp[cur];   }   int main() {     cin >> n >> k;     for (__typeof(k) i = 0; i < (k); i++) {       for (__typeof(n) j = 0; j < (n); j++) {         int x;         cin >> x;         pos[i][--x] = j;       }     }     for (__typeof(n) i = 0; i < (n); i++) {       for (__typeof(n) j = 0; j < (n); j++) {         bool flag = 1;         for (__typeof(k) a = 0; a < (k); a++) {           if (pos[a][i] <= pos[a][j]) {             flag = 0;             break;           }         }         if (flag) v[i].push_back(j);       }     }     for (__typeof(n) i = 0; i < (n); i++) dfs(i);     cout << *max_element(dp, dp + n) + 1;   }   