#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <cmath>
#include <algorithm>
#define rep(i, a, b) for (int i = (a), _ = (b); i <= _; ++ i)
#define per(i, a, b) for (int i = (a), _ = (b); i >= _; -- i)
#define For(i, a, b) for (int i = (a), _ = (b); i < _; ++ i)
#define ri rd<int>
using namespace std;
const int maxN = 307;
template<class T> inline T rd() {
bool f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = 0;
T x = 0; for (; isdigit(c); c = getchar()) x = x * 10 + c - 48; return f ? x : -x;
}
int n, m;
int vis[maxN];
int mx[maxN], cnt[maxN];
int b[maxN][maxN];
int main() {
n = ri(), m = ri();
int res = n;
rep (i, 1, n) rep (j, 1, m) b[i][j] = ri(), vis[j] = 0, mx[i] = 1;
for (int t = m; t > 0; -- t) {
rep (i, 1, m) cnt[i] = 0;
rep (i, 1, n) {
while (vis[b[i][mx[i]]] == 1) ++mx[i];
++cnt[b[i][mx[i]]];
}
int id = 1;
rep (i, 1, m) if (cnt[i] > cnt[id]) id = i;
res = min(res, cnt[id]);
vis[id] = 1;
}
printf("%d\n", res);
return 0;
}