#include<iostream>//cout cin endl resize cin.ignore
#include<cmath>//sqrt fabs
#include<iomanip>//fix setprecision
#include<algorithm>//max sort fill next_permutation
#include<cstdlib>//abs
#include<map>//map
#include<cctype>//tolower toupper
#include<string>//to_string getline
#include<vector>//vector
#include<stack>//stack
#include<queue>//queue
#include<set>//set
using namespace std;
struct Coupons
{
int a,b;
Coupons(int x,int y)
{
a=x;
b=y;
}
Coupons() {}
bool operator<(const Coupons&x)const
{
if(b!=x.b) return b<x.b;
else return a>x.a;
}
};
int main()
{
int n,m,discount=0;
cin>>n>>m;
Coupons c[m];
for(int i=0;i<m;i++) cin>>c[i].a>>c[i].b;
sort(c,c+m);
for(int i=0;i<m;i++)
{
if(c[i].a<=n&&c[i].b>discount) discount=c[i].b;
}
cout<<n-discount<<endl;
return 0;
}