#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,i,j,cnt,xlh,ans,op,a[302][302],b[302],v[302];
int main(){
	scanf("%d%d",&n,&m);
	for(i=1;i<=m;i++)v[i]=1;
	ans=n;
	for(i=1;i<=n;i++)
	 for(j=1;j<=m;j++)scanf("%d",&a[i][j]);
	for(cnt=1;cnt<m;cnt++){
		for(i=1;i<=m;i++)b[i]=0;
		for(i=1;i<=n;i++)
		 for(j=1;j<=m;j++)if(v[a[i][j]]){
		 	b[a[i][j]]++;break;
		 }
		xlh=0;
		for(i=1;i<=m;i++){
			if(b[i]>xlh)op=i;
		 xlh=max(xlh,b[i]);
	 }
		ans=min(ans,xlh);
		v[op]=0;
	}
	printf("%d",ans);
}
#include<cstdio>
#include<iostream>
#include<map>
#include<set>
#include<vector>
#include<cstring>
#include<cassert>
#include<sstream>
#include<cmath>
#include<algorithm>
#include<queue>	
#include<limits>
#include<ctime>
#include<stack>	
#include<bits/stdc++.h>
#include<string>
#include<stdlib.h>
#include<stdio.h>
	
typedef long long ll;
using namespace std;
const ll x=1000000007;
int mod(ll a){
	return a%x;
}

int main(){
	map<string,int> a;
	int n,m,maks=0;
	cin>>n;
	string s;
	for(int i=0;i<n;i++){
		cin>>s;
		a[s]++;
		cout<<endl;
	}
	cin>>m;
	for(int i=0;i<m;i++){
		cin>>s;
		a[s]--;
		cout<<endl;
	}
	for(map<string,int>:: iterator i=a.begin();i!=a.end();i++){
		maks=max(maks,i->second);
	}	
	cout<<maks;
}
