#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define DEBUG(x) cout << '>' << #x << ':' << x << endl; #define FOR(i, a, b) for (int i = (a); i < (b); ++i) #define FOR2(i, a, b) for (int i = (a); i > (b); --i) inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; } const int INF = 1<<29; typedef long long ll; const int MAX = 1000007; int in[MAX]; int bp[MAX], b[MAX]; int main() { while(true) { int M, Q; scanf("%d%d", &M, &Q); if (!M && !Q) break; FOR(i, 0, M) scanf("%d", &in[i]); map last; int best_pos = -1, best = -1; FOR(i, 0, M) { map::iterator iter = last.find(in[i]); if (iter != last.end() && iter->second > best_pos) { best_pos = iter->second; best = iter->first; } bp[i] = best_pos; b[i] = best; last[in[i]] = i; } int be, en; FOR(i, 0, Q) { scanf("%d%d", &be, &en); --be, --en; if (bp[en] < be) printf("OK\n"); else printf("%d\n", b[en]); } printf("\n"); } return 0; }