#include using namespace std; using pii = pair; int main() { int N, M; cin >> N >> M; map> ver, hor; vector loc(N+1); vector rem(N+1, true); for (int i = 1; i <= N; ++i) { int x, y; cin >> x >> y; loc[i] = {x,y}; ver[x].insert({y,i}); hor[y].insert({x,i}); } for (int j = 0; j < M; ++j) { int i; char d; cin >> i >> d; auto [x,y] = loc[i]; if (!rem[i]) cout << "ignore" << endl; else { vector elim; if (d == 'N') for (auto it = prev(ver[x].end()); it->second != i; ver[x].erase(it--)) if (rem[it->second]) { elim.push_back(it->second); rem[it->second] = false; } if (d == 'S') for (auto it = ver[x].begin(); it->second != i; ver[x].erase(it++)) if (rem[it->second]) { elim.push_back(it->second); rem[it->second] = false; } if (d == 'E') for (auto it = prev(hor[y].end()); it->second != i; hor[y].erase(it--)) if (rem[it->second]) { elim.push_back(it->second); rem[it->second] = false; } if (d == 'W') for (auto it = hor[y].begin(); it->second != i; hor[y].erase(it++)) if (rem[it->second]) { elim.push_back(it->second); rem[it->second] = false; } cout << elim.size(); for (auto it = elim.rbegin(); it != elim.rend(); ++it) cout << ' ' << *it; cout << endl; } } }