#include <bits/stdc++.h>
using namespace std;
struct Pt {
long long x, y;
};
long long cross(Pt a, Pt b, Pt c) {
return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
}
bool on_seg(Pt a, Pt b, Pt p) {
if (cross(a, b, p) != 0) return false;
return p.x >= min(a.x, b.x) && p.x <= max(a.x, b.x) &&
p.y >= min(a.y, b.y) && p.y <= max(a.y, b.y);
}
void solve() {
int n, m;
if (!(cin >> n >> m)) return;
vector<Pt> p(n);
for (int i = 0; i < n; i++) cin >> p[i].x >> p[i].y;
while (m--) {
Pt q;
cin >> q.x >> q.y;
bool bnd = false;
int cnt = 0;
for (int i = 0; i < n; i++) {
Pt a = p[i];
Pt b = p[(i + 1) % n];
if (on_seg(a, b, q)) {
bnd = true;
break;
}
if (a.y > b.y) swap(a, b);
if (q.y >= a.y && q.y < b.y && cross(q, a, b) > 0) {
cnt++;
}
}
if (bnd) cout << "BOUNDARY"<<'\n';
else if (cnt % 2 == 1) cout << "INSIDE"<<'\n';
else cout << "OUTSIDE"<<'\n';
}
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgUHQgewogICAgbG9uZyBsb25nIHgsIHk7Cn07CmxvbmcgbG9uZyBjcm9zcyhQdCBhLCBQdCBiLCBQdCBjKSB7CiAgICByZXR1cm4gKGIueCAtIGEueCkgKiAoYy55IC0gYS55KSAtIChiLnkgLSBhLnkpICogKGMueCAtIGEueCk7Cn0KYm9vbCBvbl9zZWcoUHQgYSwgUHQgYiwgUHQgcCkgewogICAgaWYgKGNyb3NzKGEsIGIsIHApICE9IDApIHJldHVybiBmYWxzZTsKICAgIHJldHVybiBwLnggPj0gbWluKGEueCwgYi54KSAmJiBwLnggPD0gbWF4KGEueCwgYi54KSAmJgogICAgICAgICAgIHAueSA+PSBtaW4oYS55LCBiLnkpICYmIHAueSA8PSBtYXgoYS55LCBiLnkpOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgaW50IG4sIG07CiAgICBpZiAoIShjaW4gPj4gbiA+PiBtKSkgcmV0dXJuOwoKICAgIHZlY3RvcjxQdD4gcChuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBjaW4gPj4gcFtpXS54ID4+IHBbaV0ueTsKCiAgICB3aGlsZSAobS0tKSB7CiAgICAgICAgUHQgcTsKICAgICAgICBjaW4gPj4gcS54ID4+IHEueTsKCiAgICAgICAgYm9vbCBibmQgPSBmYWxzZTsKICAgICAgICBpbnQgY250ID0gMDsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgUHQgYSA9IHBbaV07CiAgICAgICAgICAgIFB0IGIgPSBwWyhpICsgMSkgJSBuXTsKCiAgICAgICAgICAgIGlmIChvbl9zZWcoYSwgYiwgcSkpIHsKICAgICAgICAgICAgICAgIGJuZCA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYS55ID4gYi55KSBzd2FwKGEsIGIpOwogICAgICAgICAgICBpZiAocS55ID49IGEueSAmJiBxLnkgPCBiLnkgJiYgY3Jvc3MocSwgYSwgYikgPiAwKSB7CiAgICAgICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGJuZCkgY291dCA8PCAiQk9VTkRBUlkiPDwnXG4nOwogICAgICAgIGVsc2UgaWYgKGNudCAlIDIgPT0gMSkgY291dCA8PCAiSU5TSURFIjw8J1xuJzsKICAgICAgICBlbHNlIGNvdXQgPDwgIk9VVFNJREUiPDwnXG4nOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K