#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("orase.in") ;
ofstream g("orase.out") ;
int d , l , n , m ;
struct elem{int val , ind; } vsum[50005] , vdif[50005];
bool comp(elem a , elem b){
return a . val > b . val ;
}
int main()
{
f >> m >> n ;
for(int i = 1 ; i <= n ; ++i){
f >> d >> l ;
vsum[i].val = d + l ; vsum[i].ind = i ;
vdif[i].val = l - d ; vdif[i].ind = i ;
}
sort(vsum + 1 , vsum + n + 1 , comp) ;
sort(vdif + 1 , vdif + n + 1 , comp) ;
if(vsum[1].ind != vdif[1].ind){
g << vsum[1].val + vdif[1].val ;
return 0 ;
}
g << max(vsum[1].val + vdif[2].val , vsum[2].val + vdif[1].val) ;
return 0;
}