#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>

#include <functional>
#include <cassert>

typedef long long ll;
using namespace std;

#define debug(x) cerr << #x << " = " << x << endl;


#define mod 1000000007 //1e9+7(prime number)
#define INF 1000000000 //1e9
#define LLINF 2000000000000000000LL //2e18
#define SIZE 100010


int main(){
  ll t,s[SIZE],e[SIZE],r[SIZE] = {};
  int n;
  
  scanf("%lld%d",&t,&n);

  for(int i=0;i<n;i++){
    scanf("%lld%lld",s+i,e+i);
  }

  for(int i=1;i<n;i++){
    r[i] = s[i] - e[i-1] + r[i-1];
  }
  
  ll ans = 0;
  
  for(int i=0;i<n;i++){

    ll* it = upper_bound(s,s+n,s[i]+t);

    if(it == s){
      ans = max(ans,min(t,e[0]-s[0]));
    }else{
      it--;
      
      if(s[i]+t >= e[it-s])
        ans = max(ans, e[it-s]-s[i]-(r[it-s]-r[i]));
      else
        ans = max(ans, t-(r[it-s]-r[i]));
    }
  }

  printf("%lld\n",ans);
  
  
  return 0;
}