#include #include #include #include #include #include #include #define BUFLEN 1024 #define MAX_M 1000000 class LolException { public: unsigned int number; LolException(unsigned int number) { this->number = number; //~ printf("lold: %u\n", number); } }; bool lolCompare(unsigned int a, unsigned int b) { if (a == b) throw new LolException(a); return a < b; } void solve(unsigned int keys[], unsigned int b, unsigned int e) { unsigned int mykeys[MAX_M + 1]; unsigned int i; memcpy(&mykeys[b], &keys[b], sizeof(unsigned int) * (e - b + 1)); //~ for (i = b; i <= e; i++) //~ printf("%u ", mykeys[i]); //~ printf("\n"); try { std::sort(&(mykeys[b]), &(mykeys[e + 1])); for (i = b; i < e; i++) if (mykeys[i] == mykeys[i + 1]) throw new LolException(mykeys[i]); printf("OK\n"); } catch (LolException *lol) { printf("%u\n", lol->number); delete lol; } } int main(int argc, char *argv[]) { argc = argc; argv = argv; unsigned int M, Q; char buffer[BUFLEN]; unsigned int m, q, b, e; unsigned int keys[MAX_M + 1]; while (true) { fgets(buffer, BUFLEN, stdin); sscanf(buffer, "%d %d", &M, &Q); if (M == 0 && Q == 0) break; for (m = 1; m <= M; m++) { fgets(buffer, BUFLEN, stdin); sscanf(buffer, "%u", &(keys[m])); } for (q = 1; q <= Q; q++) { fgets(buffer, BUFLEN, stdin); sscanf(buffer, "%u %u", &b, &e); //~ for (m = 1; m <= M; m++) //~ printf("%u ", keys[m]); //~ printf("\n");return 1; solve(keys, b, e); } fgets(buffer, BUFLEN, stdin); printf("\n"); } return 0; }