#include <bits/stdc++.h>
#define int long long
using namespace std;
int const M = 1e18 + 1e9 + 9;
vector <int> gr;
int merge(int a, int b) {
return min(a, b);
}
void upd(int l, int r, int v, int p, int val) {
if (r == l) gr[v] = val;
else {
int m = (l + r) / 2;
if (m >= p) upd(l, m, v << 1, p, val);
else upd(m + 1, r, v << 1 | 1, p, val);
gr[v] = merge(gr[v << 1], gr[v << 1 | 1]);
}
}
int get(int l, int r, int v, int ql, int qr) {
if (r < ql || qr < l) return M;
if (ql <= l && r <= qr) return gr[v];
int m = (l + r) / 2;
return merge(get(l, m, v << 1, ql, qr), get(m + 1, r, v << 1 | 1, ql, qr));
}
void solve() {
int n, q;
cin >> n >> q;
vector <vector <int> > v(n, vector <int> (3));
for (int i = 0; i < n; i ++) {
cin >> v[i][1] >> v[i][0];
v[i][2] = i;
}
sort(v.begin(), v.end());
int gro[n];
int a[n][2];
vector <vector <int>> v1;
for (int i = 0; i < n; i ++) {
int i1 = i, mn = M;
while (i1 < n && v[i][0] == v[i1][0]) mn = min(mn, v[i1][1]), gro[v[i1][2]] = v1.size(), a[v[i1][2]][0] = v[i1][1], a[v[i1][2]][1] = v[i1][1], i1 ++;
v1.push_back({v[i][0], mn});
i = i1 - 1;
}
int n1 = v1.size();
int dp[n1][n];
for (int i = 0; i < n1; i ++) {
gr.assign(4 * n1, M);
upd(0, n1 - 1, 1, i, 0);
for (int j = 0; j < n; j ++) {
if (gro[j] < i) {
dp[i][j] = -1;
continue;
}
if (gro[j] == i) {
dp[i][j] = 1;
continue;
}
if (v1[gro[j]][1] > v1[gro[j] - 1][0]) {
dp[i][j] = -1;
continue;
}
int l = i - 1, r = gro[j];
while (r - l > 1) {
int m = (l + r) / 2;
if (v1[m][0] >= v[j][1]) r = m;
else l = m;
}
int mn = get(0, n1 - 1, 1, r, gro[j]);
if (mn == M) dp[i][j] = -1;
else dp[i][j] = mn + 1;
if (dp[i][j] != -1) upd(0, n1 - 1, 1, gro[j], dp[i][j]);
}
}
while (q --) {
int s, e;
cin >> s >> e;
s --, e --;
if (s == e) {
cout << "0\n";
} else if (dp[gro[s]][e] == -1) cout << "impossible\n";
else cout << dp[gro[s]][e] << '\n';
}
return ;
}
signed main() {
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t = 1;
// cin >> t;
while (t --) solve();
return 0;
}