/*
#ifdef LOCAL
// 44Gq44Gc56eB44Gu44Kz44O844OJ44Gr5omL44KS5Ye644GZ44KT44Gg77yf5rGa44GE5omL44Gn56eB44Gu44Kz44O844OJ44GL44KJ5omL44KS6Zui44Gb44CB6LKg44GR54qs44CB5Zyw542E44G46KGM44GR44CC
#endif
*/
#include <bits/stdc++.h>
#include <cstdint>
using namespace std;
#define int long long
int n, q;
int r[15], h[15];
signed main(){
cin >> n >> q;
for(int i = 0; i < n; i++){
cin >> r[i] >> h[i];
}
while(q--){
int a, b;
cin >> a >> b;
vector<int> v;
for(int i = 0; i < n; i++){
if(r[i] >= a && h[i] <= b){
v.push_back(i);
}
}
int m = v.size();
if(m == 0){
cout << 0 << endl;
continue;
}
vector<int> p(m);
for(int i = 0; i < m; i++) p[i] = i;
int ans = 1e9;
do{
vector<pair<int,int>> c;
for(int i = 0; i < m; i++){
int x = v[p[i]];
int f = 0;
for(int j = 0; j < (int)c.size(); j++){
if(c[j].first < r[x] && c[j].second < h[x]){
c[j] = {r[x], h[x]};
f = 1;
break;
}
}
if(!f){
c.push_back({r[x], h[x]});
}
}
ans = min(ans, (int)c.size());
} while(next_permutation(p.begin(), p.end()));
cout << ans << endl;
}
}