【題目敘述】https://codeforces.com/contest/463/problem/D
#include <iostream>
using namespace std;
int n, K, num, a[1005][5], b[1005], ans[1005], mx;
int main() {
cin >> n >> K;
for (int i = 1; i <= n; i++){
cin >> b[i];
}
for (int i = 1; i < K; i++){
for (int j = 1; j <= n; j++){
cin >> num;
a[num][i] = j;
}
}
for (int i = 1; i <= n; i++){
for (int j = 1; j < i; j++){
bool flag = true;
for (int k = 1; k < K; k++){
if (a[b[i]][k] <= a[b[j]][k]) flag = false;
}
if (flag) ans[b[i]] = max(ans[b[i]], ans[b[j]]);
}
ans[b[i]]++;
mx = max(mx, ans[b[i]]);
}
cout << mx << "\n";
}