// 直接对每个点进行排序

#include <algorithm>
#include <iostream>
#include <utility>
#include <vector>
using namespace std;

bool cmp(pair<int,int> s1, pair<int,int> s2){
    if(s1.first != s2.first)
        return s1.first < s2.first;
    else
        return s1.second < s2.second;
}
int main() {
   int n, m;
   cin >> n >> m;
   int sum = n+1;
   int start , end;
    vector<pair<int,int>> cuts(m);
    for(int i=0; i<m; i++)
        cin >> cuts[i].first >> cuts[i].second;
    sort(cuts.begin(), cuts.end(), cmp);
    start = cuts[0].first; end = cuts[0].second;
    int len = 0; // 用来记录每次应该减去多少
    for(int i=0; i<m; i++){
        int curLen;
        if(cuts[i].first > end){
            start = cuts[i].first; end = cuts[i].second;
            len = end-start+1; 
        }else{
            end = max(cuts[i].second, end);
            len = (end-start+1) - len;
        }
        sum -= len;
        len = (end-start+1);
    }
    cout << sum << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")