//  两个整数L(1<=L<=10000)和M(1<=M<=100)。     接下来有M组整数,每组有一对数字。
#include<stdio.h>
#define maxsize 100
#define max 10001
struct Node {  //用于表示区间的结构体
    int start;
    int end;
};
int main() {
    int L, M, count = 0;
    struct Node m[maxsize];  //定义结构体数组
    scanf("%d%d", &L, &M);
    for (int i = 0; i < M; i++) //M个区间
        scanf("%d%d", &m[i].start, &m[i].end);
    int a[max];
    for (int i = 0; i < L + 1; i++) //每一个整数点都有一棵树
        a[i] = 1;
    for (int i = 0; i < M; i++) {
        int start0 = m[i].start;
        int end0 = m[i].end;
        for (int j = start0; j <= end0; j++) //移走区间内(包括端点)的树
            a[j] = 0;
    }
    for (int i = 0; i < L + 1; i++) {
        if (a[i] == 1)
            count++;
    }
    printf("%d", count);



    return 0;

}