#include <bits/stdc++.h>
#define endl '\n'
#define rep(i,x,y) for(int i=x;i<=y;i++)
using namespace std;
void solve() {
int n,m; cin >> n >> m;
vector<set<int>> a(509);
int ans = 0;
rep(i,1,n) rep(j,1,m) {
int x; cin >> x;
if(x == min(i, j)) {
ans++;
continue;
}
a[x].insert(min(i, j));
}
int delta = 0;
rep(i,1,500) {
for(auto j : a[i]) {
if(!a[j].empty())
delta = max(delta, 1);
if(a[j].count(i))
delta = max(delta, 2);
}
}
cout << ans + delta << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t = 1;
while(t--) solve();
return 0;
}