// 两个整数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;
}