func_code_string: #include <bits/stdc++.h>   using namespace std;   int cnt1[5001] = {0};   int cnt2[5001][5001] = {0};   vector<int> p[5001];   int cnt[5001] = {0};   int solve() {     int n, q;     cin >> n >> q;     vector<pair<int, int>> v;     for (int j = 0; j < q; j++) {       int l, r;       cin >> l >> r;       v.push_back({l, r});     }     sort(v.begin(), v.end());     for (int j = 0; j < q; j++) {       for (int i = v[j].first; i <= v[j].second; i++) {         cnt[i]++;         if (cnt[i] <= 2) {           p[i].push_back(j);         }       }     }     int s = 0;     for (int j = 1; j <= n; j++) {       int k = cnt[j];       if (k) {         s++;       }       if (k == 1) {         cnt1[p[j][0]]++;       } else if (k == 2) {         cnt2[p[j][0]][p[j][1]]++;         cnt2[p[j][1]][p[j][0]]++;       }     }     int ans = 0;     for (int j = 0; j < q; j++) {       for (int i = j + 1; i < q; i++) {         ans = max(ans, s - cnt1[j] - cnt1[i] - cnt2[i][j]);       }     }     cout << ans <<   n ;     return 0;   }   signed main() {     ios::sync_with_stdio(0);     cin.tie(NULL);     cout.tie(NULL);     int t;     t = 1;     while (t--) {       solve();     }     return 0;   }   