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

int n,m;
int a[310][310]; 
int ans;
int vis[310];
stack<int> s[310];

int main()
{
	cin>>n>>m;
	for (int i=1;i<=n;i++)
		for (int o=1;o<=m;o++) cin>>a[i][o];
	for (int i=1;i<=n;i++)
		for (int o=m;o;o--) s[i].push(a[i][o]);
	
	ans=n;
	for (int i=1;i<=m;i++)
	{
		int c[310];
		memset(c,0,sizeof c);
		
		for (int o=1;o<=n;o++) c[s[o].top()]++;
		int maxi=s[1].top();
		for (int o=2;o<=n;o++) if (c[s[o].top()]>c[maxi]) maxi=s[o].top();
		vis[maxi]=1;
		ans=min(ans,c[maxi]);
		for (int o=1;o<=n;o++)
			while (!s[o].empty() && vis[s[o].top()]) s[o].pop();
	}
	cout<<ans<<endl;
}