func_code_string: #include <bits/stdc++.h>   const int N = 200005;   const int M = 500005;   using namespace std;   pair<int, int> a[N];   int p[20][M];   int main() {     int n, m;     scanf( %d%d , &n, &m);     int i, j;     for (i = 0; i < n; i++) {       scanf( %d%d , &a[i].first, &a[i].second);     }     sort(a, a + n);     memset(p, -1, sizeof(p));     int maxe = -1;     j = 0;     for (i = 0; i < M; i++) {       while (j < n && a[j].first <= i) {         if (a[j].second > maxe) maxe = a[j].second;         j++;       }       if (maxe >= i)         p[0][i] = maxe;       else         p[0][i] = -1;     }     for (j = 0; j < 19; j++)       for (i = 0; i < M; i++)         if (p[j][i] == -1)           p[j + 1][i] = -1;         else           p[j + 1][i] = p[j][p[j][i]];     int u, v;     for (i = 0; i < m; i++) {       scanf( %d%d , &u, &v);       int ans = 0;       for (j = 19; j >= 0; j--)         if (p[j][u] < v) {           u = p[j][u];           ans += 1 << j;         }       u = p[0][u];       ans++;       if (u >= v)         printf( %d n , ans);       else         printf( -1 n );     }     return 0;   }   