#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n,m,a[305][305],s[305][305],tot[305];
bool vis[305];
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
		for(int p=1;p<=m;p++) scanf("%d",&a[i][p]);
	for(int i=1;i<=n;i++) s[a[i][1]][++tot[a[i][1]]]=i;
	int ans=0;
	for(int i=1;i<=m;i++) ans=max(ans,tot[i]),vis[i]=1;
	for(int i=1;i<m;i++){
		int mx=1;
		for(int p=1;p<=m;p++) if(tot[p]>tot[mx]) mx=p;
		vis[mx]=0;
		for(int p=1;p<=tot[mx];p++){
			int x=s[mx][p];
			for(int j=1;j<=m;j++) if(vis[a[x][j]]){
				s[a[x][j]][++tot[a[x][j]]]=x;
				break;
			}
		}
		tot[mx]=0;
		int w=0;
		for(int p=1;p<=m;p++) w=max(w,tot[p]);
		ans=min(ans,w);
	}
	printf("%d",ans);
	return 0;
}