#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;
}