#include #include #include #include using namespace std; int main() { int m, q, b, e, M[1000001], P[1000001]; bool first = true; while (true) { scanf("%d %d", &m, &q); if (m == 0 && q == 0) break; if (!first) puts(""); else first = false; map prev; map::iterator it; for (int i = 1; i <= m; i++) { scanf("%d", M + i); } for (int i = m; i >= 1; i--) { it = prev.find(M[i]); if (it == prev.end()) { P[i] = 0; prev[M[i]] = i; } else { P[i] = it->second; it->second = i; } } #if 0 for (int i = 1; i <= m; i++) { printf("%d next %d\n", M[i], P[i]); } #endif for (int i = 0; i < q; i++) { scanf("%d %d", &b, &e); int bad = 0; for (int i = b; i <= e; i++) { if (P[i] == 0) continue; if (P[i] <= e) { bad = M[i]; break; } } if (bad == 0) puts("OK"); else printf("%d\n", bad); } } return 0; }