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

int main() {
    int L,M;
    cin>>L>>M;
    int sum=L+1;
    vector<vector<int>> arr(M, vector<int>(2));
    vector<int> regionLengths(M);
    for(int i=0;i<M;i++){
        cin>>arr[i][0]>>arr[i][1];
            regionLengths.push_back(arr[i][1]-arr[i][0]+1);
    }
    sort(arr.begin(), arr.end());
       int totalOverlap = 0;
    int currentEnd = arr[0][1];
    
    for(int i = 1; i < M; i++) {
        if(arr[i][0] <= currentEnd) {  // 有重叠
            totalOverlap += min(currentEnd, arr[i][1]) - arr[i][0] + 1;
            currentEnd = max(currentEnd, arr[i][1]);
        } else {
            currentEnd = arr[i][1];
        }
    }
    
    // 计算总区域长度
    int totalRegionLength = 0;
    for(int length : regionLengths) {
        totalRegionLength += length;
    }
    
    cout << sum - totalRegionLength + totalOverlap << endl;
}
// 64 位输出请用 printf("%lld")