#include <iostream>
using namespace std;
int main() {
long long M, N; // M = lungimea străzii principale, N = numărul de orașe
cin >> M >> N;
long long D, L; // D = distanța străzii lăturalnice față de capătul stâng
// L = lungimea străzii lăturalnice până la oraș
// Vom memora extremele celor două expresii:
// expr1 = D + L
// expr2 = D - L
long long max1 = -9000000000000000LL; // cel mai mare D + L
long long min1 = 9000000000000000LL; // cel mai mic D + L
long long max2 = -9000000000000000LL; // cel mai mare D - L
long long min2 = 9000000000000000LL; // cel mai mic D - L
// Citim toate cele N străzi lăturalnice
for (long long i = 0; i < N; i++) {
cin>>D>>L; // citim o stradă
long long expr1 = D + L; // coordonata transformata 1
long long expr2 = D - L; // coordonata transformata 2
// Actualizăm extremă maximă și minimă pentru expr1
if (expr1 > max1) max1 = expr1;
if (expr1 < min1) min1 = expr1;
// Actualizăm extremă maximă și minimă pentru expr2
if (expr2 > max2) max2 = expr2;
if (expr2 < min2) min2 = expr2;
}
// Distanța maximă Manhattan dintre 2 orașe este maximul a două valori:
long long ans1 = max1 - min1;
long long ans2 = max2 - min2;
long long ans;
if (ans1 > ans2) ans = ans1;
else ans = ans2;
cout << ans;
return 0;
}