#include<iostream>
#include <cmath>
#include <climits>
using namespace std;
int main () {
int n,m; cin>>n>>m;
int** arr = new int*[n]();
for(int i =0; i<n; ++i) arr[i] = new int[n]();
int x,y;
while(m--) {
cin>>x>>y;
arr[x-1][y-1] = 1;
}
int** psa = new int*[n]();
for(int i =0; i<n; ++i) psa[i] = new int[n]();
psa[0][0] = arr[0][0];
for (int i = 1; i < n; i++)
psa[0][i] = psa[0][i - 1] + arr[0][i];
for (int i = 1; i < n; i++)
psa[i][0] = psa[i - 1][0] + arr[i][0];
for (int i = 1; i < n; i++) {
for (int j = 1; j < n; j++)
psa[i][j] = psa[i - 1][j] + psa[i][j - 1] - psa[i - 1][j - 1] + arr[i][j]; }
int ans = INT_MIN;
for(int i = 1; i <= n-1; ++i) {
for(int j = 1; j <= n-1; ++j) {
int a = psa[i-1][j-1];
int b = psa[i-1][n-1] - psa[i-1][j-1];
int c = psa[n-1][j-1] - a;
int d = arr[n-1][n-1] - b - c + a;
ans = max(ans,min(min(a,b),min(c,d)));
}
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNsaW1pdHM+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluICgpIHsKCWludCBuLG07IGNpbj4+bj4+bTsKICAgICAgICBpbnQqKiBhcnIgPSBuZXcgaW50KltuXSgpOwogICAgICAgIGZvcihpbnQgaSA9MDsgaTxuOyArK2kpIGFycltpXSA9IG5ldyBpbnRbbl0oKTsKICAgICAgICBpbnQgeCx5OwogICAgICAgd2hpbGUobS0tKSAgewoJCSAgICBjaW4+Png+Pnk7CgkJICAgYXJyW3gtMV1beS0xXSA9IDE7CgkgICB9CiAgICAgICBpbnQqKiBwc2EgPSBuZXcgaW50KltuXSgpOwogICAgICAgIGZvcihpbnQgaSA9MDsgaTxuOyArK2kpIHBzYVtpXSA9IG5ldyBpbnRbbl0oKTsKICAgICAgICBwc2FbMF1bMF0gPSBhcnJbMF1bMF07CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspIAogICAgICAgIHBzYVswXVtpXSA9IHBzYVswXVtpIC0gMV0gKyBhcnJbMF1baV07IAogICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgCiAgICAgICAgcHNhW2ldWzBdID0gcHNhW2kgLSAxXVswXSArIGFycltpXVswXTsgCiAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKSB7IAogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgbjsgaisrKSAKICAgICAgICAgICAgcHNhW2ldW2pdID0gcHNhW2kgLSAxXVtqXSArIHBzYVtpXVtqIC0gMV0gLSBwc2FbaSAtIDFdW2ogLSAxXSArIGFycltpXVtqXTsgfSAKCQkJaW50IGFucyA9IElOVF9NSU47CgkJZm9yKGludCBpID0gMTsgaSA8PSBuLTE7ICsraSkgewoJCQlmb3IoaW50IGogPSAxOyBqIDw9IG4tMTsgKytqKSB7CiAgICAgICAgICAgICAgIGludCBhID0gcHNhW2ktMV1bai0xXTsKCQkJICAgaW50IGIgPSBwc2FbaS0xXVtuLTFdIC0gcHNhW2ktMV1bai0xXTsKCQkJICAgaW50IGMgPSBwc2Fbbi0xXVtqLTFdIC0gYTsKCQkJICAgaW50IGQgPSBhcnJbbi0xXVtuLTFdIC0gYiAtIGMgKyBhOwoJCQkJYW5zID0gbWF4KGFucyxtaW4obWluKGEsYiksbWluKGMsZCkpKTsKCQkJfQoJCX0JCiAgICAgICBjb3V0PDxhbnM8PGVuZGw7CgoJcmV0dXJuIDA7Cn0=