#include #include static int hol[1024000], v[1024000], r[1024000][2], t[1024000], h[1024000], s[1024000]; int cmp(const void *a_, const void *b_) { const int *a = a_, *b = b_; if (a[0] != b[0]) return a[0]-b[0]; return a[1]-b[1]; } int main(void) { int first = 1; for (;;) { int m, q, i, j; scanf("%d %d", &m, &q); if (m == 0) return 0; if (first) first = 0; else putchar('\n'); for (i = 0; i < m; i++) { scanf("%d", &r[i][0]); v[i] = r[i][0]; r[i][1] = i; } qsort(r, m, 2*sizeof(int), cmp); for (i = 0; i < m; i++) { hol[r[i][1]] = i; } for (i = 0; i < m; i++) { int x = hol[i]-1; if (r[x][0] == r[hol[i]][0]) t[i] = r[x][1]; else t[i] = -1; } h[0] = -1; for (i = 1; i < m; i++) { if (t[i] > h[i-1]) { h[i] = t[i]; s[i] = v[i]; } else { h[i] = h[i-1]; s[i] = s[i-1]; } } for (i = 0; i < q; i++) { int a, b; scanf("%d %d", &a, &b); a--; b--; if (a <= h[b]) printf("%d\n", s[b]); else printf("OK\n"); } } }