#include #include #include using namespace std; const int MMAX = 1000001; const int INF = 2147000000; int main() { vector v; vector bad_pos; map pos_map; int M, Q; while (1) { scanf("%d%d", &M, &Q); if (M == 0 && Q == 0) break; v.resize(M+1); bad_pos.resize(M+1); for (int i = 0; i <= M; ++i) bad_pos[i] = INF; for (int i = 1; i <= M; ++i) { int key; scanf("%d", &key); v[i] = key; if (pos_map.count(key) > 0) { int prev_pos = pos_map[key]; bad_pos[prev_pos] = i; } pos_map[key] = i; } int last = INF; for (int i = M; i > 0; --i) if (bad_pos[i] > last) bad_pos[i] = last; else last = bad_pos[i]; for (int i = 0; i < Q; ++i) { int f, l; scanf("%d%d", &f, &l); if (bad_pos[f] > l) printf("OK\n"); else printf("%d\n", v[bad_pos[f]]); } } return 0; }