#include<cstdio>
#include<algorithm>
#include<set>
#define N 1145
#define itt set<seg>::iterator
using namespace std;
int seed=6;
bool rnd(){seed=(seed*23)%97;return seed&1;}
struct seg{
int l,r;
seg(int a=-1,int b=-1){l=a,r=b;}
bool operator<(const seg &c)const{
if(l==c.l)return rnd();
else return l<c.l;
}
};
set<seg> st;
int n,k,ans=-114514,tot,mn=1919810,cnt=0,a[N],b[N];
signed main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=k;i++){
scanf("%d%d",&a[i],&b[i]);
mn=min(mn,a[i]);
st.insert(seg(a[i],a[i]+b[i]));
}
for(int gg=1;gg<=1000;gg++){
st.clear();
for(int i=1;i<=k;i++){
mn=min(mn,a[i]);
st.insert(seg(a[i],a[i]+b[i]));
}tot=0;
while(tot<k){
itt it=st.begin();
int len=it->r-it->l;
if(it->l!=mn)break;
while(it->l<=n){
int r=it->r;
st.erase(it);tot++;
it=st.lower_bound(seg(r,0));
if(it==st.end())break;
len+=it->r-it->l;
}
ans=max(ans,n-len);
}
}
printf("%d",ans);
return 0;
}