#include <bits/stdc++.h>
using namespace std;
int mex(int n,vector<int> v){
unordered_set<int> s;
for(int i=1;i<n+2; i++){
s.insert(i);
}
for(auto val:v) if (s.find(val)!=s.end()) s.erase(val);
return *min_element(s.begin(),s.end());
}
int solve(int N,int M,vector<vector<int>>Arr){
int op=0;
for(int i=0;i<N;++i){
op=max(op,mex(M,Arr[i]));
}
cout<<op<<endl;
int ans=0;
for(int i=0;i<N;++i){
map<int,int>m;
for(int j=0;j<M;++j){
if(Arr[i][j]<op)
m[Arr[i][j]]++;
}
int rem=m.size();
ans+=(op-rem-1);
}
return ans;
}
int main(){
int n,m;
cin >> n >> m;
vector<vector<int>>a;
for(int i=0;i<n;++i){
vector<int>s;
for(int j=0;j<m;++j){
int op;
cin >> op;
s.push_back(op);
}
a.push_back(s);
}
cout<<solve(n,m,a)<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWV4KGludCBuLHZlY3RvcjxpbnQ+IHYpewogICAgdW5vcmRlcmVkX3NldDxpbnQ+IHM7CiAgICBmb3IoaW50IGk9MTtpPG4rMjsgaSsrKXsKICAgICAgICBzLmluc2VydChpKTsKICAgIH0KICAgIGZvcihhdXRvIHZhbDp2KSBpZiAocy5maW5kKHZhbCkhPXMuZW5kKCkpIHMuZXJhc2UodmFsKTsKICAgIHJldHVybiAqbWluX2VsZW1lbnQocy5iZWdpbigpLHMuZW5kKCkpOwp9CgoKaW50IHNvbHZlKGludCBOLGludCBNLHZlY3Rvcjx2ZWN0b3I8aW50Pj5BcnIpewogICAgaW50IG9wPTA7CiAgICBmb3IoaW50IGk9MDtpPE47KytpKXsKICAgICAgICBvcD1tYXgob3AsbWV4KE0sQXJyW2ldKSk7CiAgICB9CiAgICBjb3V0PDxvcDw8ZW5kbDsKICAgIGludCBhbnM9MDsKICAgIGZvcihpbnQgaT0wO2k8TjsrK2kpewogICAgICAgIG1hcDxpbnQsaW50Pm07CiAgICAgICAgZm9yKGludCBqPTA7ajxNOysrail7CiAgICAgICAgICAgIGlmKEFycltpXVtqXTxvcCkKICAgICAgICAgICAgbVtBcnJbaV1bal1dKys7CiAgICAgICAgfQogICAgICAgIGludCByZW09bS5zaXplKCk7CiAgICAgICAgYW5zKz0ob3AtcmVtLTEpOwogICAgfQogICAgcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKXsKICAgIGludCBuLG07CiAgICBjaW4gPj4gbiA+PiBtOwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PmE7CiAgICBmb3IoaW50IGk9MDtpPG47KytpKXsKICAgICAgICB2ZWN0b3I8aW50PnM7CiAgICAgICAgZm9yKGludCBqPTA7ajxtOysrail7CiAgICAgICAgICAgIGludCBvcDsKICAgICAgICAgICAgY2luID4+IG9wOwogICAgICAgICAgICBzLnB1c2hfYmFjayhvcCk7CiAgICAgICAgfQogICAgICAgIGEucHVzaF9iYWNrKHMpOwogICAgfQogICAgY291dDw8c29sdmUobixtLGEpPDxlbmRsOwp9