#include<bits/stdc++.h>
using namespace std;

typedef long long lli;

int main(){
  lli T,N,start,tmp=0,MAX=0,endnum=0,is,it,ir=0;
  vector<lli>s,t,rsw;

  cin>>T>>N;
  for(lli i=0;i<N;i++){
    cin>>is>>it;
    s.push_back(is);
    t.push_back(it);
    ir+=it-is;
    rsw.push_back(ir);
  }

  for(lli i=0;i<N;i++){
    start=s[i];
    for(lli j=endnum;j<N;j++){
      if(s[i+j]<start+T&&(i+j!=N-1 ? (s[i+j+1]>start+T):true)){
	endnum=j-1;
	if(start+T>=t[i+j])
	  tmp = rsw[i+j]-(i==0 ? 0:rsw[i-1]);
	else
	  tmp = (i+j==0 ? 0:rsw[i+j-1]) + (start+T-s[i+j]) -(i==0 ? 0:rsw[i-1]);

	break;
      }
    }
    
    MAX=max(MAX,tmp);
  }

  cout<<MAX<<endl;

  return 0;
}