#include <iostream>
#include <vector>

using namespace std;

int N, M;
int cnt[305];
vector<int> A[305];


int main(void)
{
	cin >> N >> M;
	
	int tmp;
	for(int n = 0; n < N; n++){
		for(int m = 0; m < M; m++){
			cin >> tmp;
			A[n].push_back(tmp);
		}
	}
	
	int ans = 100000;
	int max, max_j;
	
	
	for(int i = 0; i < M; i++){
		
		for(int j = 1; j <= M; j++) cnt[j] = 0;
		for(int j = 0; j < N; j++){
			cnt[A[j][0]]++;
		}
		
		max = -1;
		for(int j = 1; j <= M; j++){
			if(max < cnt[j]){
				max = cnt[j];
				max_j = j;
			}
		}
		
		if(ans > max) ans = max;
		
		for(int j = 0; j < N; j++){
			for(int k = 0; ; k++){
				if(A[j][k] == max_j){
					A[j].erase(A[j].begin() + k);
					break;
				}
			}
		}
	}
	
	cout << ans << endl;
	return 0;
}
	