#include<bits/stdc++.h>
using namespace std;

queue<int> q[301];
int visited[301];
int cnt[301];

int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			int su;
			scanf("%d",&su);
			q[i].push(su-1);
		}
	}
	int ans = n+1;
	for(int i=0;i<m;i++){
		int mx = 0, mxn = 0;
		for(int j=0;j<m;j++) cnt[j] = 0;
		for(int j=0;j<n;j++){
			while(visited[q[j].front()] == 1){
				q[j].pop();
			}
			cnt[q[j].front()]++;
		}
		for(int j=0;j<m;j++){
			mx = max(mx, cnt[j]);
			if(mx == cnt[j]) mxn = j;
		}
		ans = min(ans, mx);
		visited[mxn] = 1;
		//printf("%d %d\n", mx,mxn);
	}
	printf("%d",ans);
}