#include <bits/stdc++.h>
using namespace std;
int n, k;
int pos[5][1010];
int a[5][1010];
int dp[1010];
int main() {
  cin >> n >> k;
  for (int i = 0; i < k; i++) {
    for (int j = 0; j < n; j++) {
      cin >> a[i][j];
      pos[i][--a[i][j]] = j;
    }
  }
  int ans = 0;
  for (int j = 0; j < n; j++) {
    int maxn = 0;
    for (int p = 0; p < j; p++) {
      int i;
      for (i = 1; i < k && pos[i][a[0][p]] < pos[i][a[0][j]]; i++)
        ;
      if (i == k && dp[p] > maxn) {
        maxn = dp[p];
      }
    }
    dp[j] = maxn + 1;
    ans = max(ans, dp[j]);
  }
  cout << ans << endl;
  return 0;
}
