//
// Created by alleyf on 2023/6/24.
//
#include<bits/stdc++.h>

using namespace std;
const int MAXL = 100001;
int main() {
    bool flag[MAXL];
    int l, m, num;
    cin >> l >> m;
    num = l + 1;
    for (int i = 0; i <= l; ++i) {
        flag[i] = true;
    };
    while (m--) {
        int left, right;
        cin >> left >> right;
        for (int i = left; i <= right; ++i) {
            if (flag[i]) {
                flag[i] = false;
                num--;
            }
        }
    }
    cout << num;
}
  1. 使用一个l+1长度的array存储所有树的存在状态,初始化所有树的状态为真;
  2. 根据区间循环判每棵树的状态,若为真则修改树输出总数的状态为假并将树的总数自减;
  3. 输出剩余树的数量。