#include #include using namespace std; const int U = 1<<20; map ma; int c[2*U]; int pyt(int a, int b, int x = 0, int y = U-1, int v = 1) { if(a <= x && y <= b) return c[v]; int s = (x+y) / 2; int ret = -10; if(a <= s) ret = max(ret, pyt(a,b, x,s,v+v)); if(b > s) ret = max(ret, pyt(a,b, s+1,y,v+v+1)); return ret; } int a[U-13]; int main() { int n,q; while(scanf("%d %d",&n,&q) == 2 && n) { ma.clear(); for(int i = 0; i < n; i++) { scanf("%d",&a[i]); c[i+U] = -1; if(ma.count(a[i])) c[i+U] = ma[a[i]]; ma[a[i]] = i; } for(int i = U-1; i>=1; i--) c[i] = max(c[i+i], c[i+i+1]); while(q--) { int aa,b; scanf("%d %d",&aa,&b); int w = pyt(aa-1, b-1); if(w < aa-1) puts("OK"); else printf("%d\n", a[w]); } puts(""); } return 0; }