
import java.io.BufferedReader;

import java.io.InputStreamReader;
import java.util.Arrays;

public class unique {

    public static void main(String[] args) throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String line="";
        
            int M3w = Integer.parseInt("0");
        
        while(!"0 0".equals((line = in.readLine()))){
            String[] a = line.split(" ");
            
                
            int M = Integer.parseInt(a[0]);
            int Q = Integer.parseInt(a[1]);
            
            
            if(Q  == 0 ){
                System.out.println();
                
                while(!"".equals((line = in.readLine()))){}
                continue;
            }
            
            
            
            code[] codes = new code[M];
            code[] codesOrig = new code[M];
            
            for (int i = 0; i < M; i++) {
                codes[i] = new code(Integer.parseInt(in.readLine()),i);
            }

            codesOrig = codes.clone();
            
            Arrays.sort(codes);
            int counter = 0;
            int cur = 0;
            int aaa =1;
            for (int i = 1; i < codes.length; i++) {
                cur =codes[i-1].code;
                
                if (cur  == codes[i].code){
                    counter ++;
                    counter +=aaa;
                    aaa = 0;
                }else{
                    aaa = 1;
                }
            }
            code[] pairs = new code[counter];            
            
            if(pairs.length < 2){
                System.out.println("OK");
                System.out.println();
                
                while(!"".equals((line = in.readLine()))){}
                continue;
            }
            
            int aa = 1;
                int bb= 0;
            for (int i = 1; i < codes.length; i++) {
                if (codes[i-1].code == codes[i].code){
                    pairs[aa-1] = codes[i-1];
                    pairs[aa++] = codes[i];
                    bb = 1;
                }else{
                    aa+=bb;
                    bb = 0;
                }
            }

            
            
            code[] intervals = new code[Q];
            
            //for (int i = 0; i < codes.length; i++) { System.out.println("codes "+i+"  "+codes[i].code+"   "+codes[i].pos); }
            //for (int i = 0; i < pairs.length; i++) { System.out.println("pairs "+i+"  "+pairs[i].code+"   "+pairs[i].pos); }
            
            for (int i = 0; i < Q; i++) {
                a = in.readLine().split(" ");
                intervals[i] = new code(Integer.parseInt(a[0]),Integer.parseInt(a[1]));
            }
            Arrays.sort(codes);
            
            for (int kk = 0; kk < Q; kk++) {
                boolean found = false;
                int pos = -1;
                int from = 0;
                int to = 0;
                    //System.out.println("interval "+(intervals[kk].code-1)+"  "+intervals[kk].pos);
                for (int i = intervals[kk].code-1; i < intervals[kk].pos ; i++) {
                    
                    
                    
                    pos= Arrays.binarySearch(pairs, new code(codesOrig[i].code, i));
                    if (pos > -1){
                       // System.out.println(kk+"  pos of ("+codesOrig[i].code+" "+i+")    is "+pairs[pos].code+" "+pairs[pos].pos);
                        if (pos < pairs.length -1 && pairs[pos+1].pos < intervals[kk].pos && pairs[pos+1].code == pairs[pos].code){
                            System.out.println(pairs[pos+1].code);
                            found = true;
                            from = pairs[pos].pos;
                            to = pairs[pos+1].pos;
                            break;
                        }
                    }else {
                    }
                }
                if (!found){
                    System.out.println("OK");
                    //from = -1;
                    //to = -1;
                }else{
                    //while (kk+1 < intervals.length && intervals[kk+1].code <= from && intervals[kk+1].pos < to){
                    //    System.out.println(pairs[pos+1].code);
                    //    kk++;
                    //}
                }
            }
                    System.out.println();
                    in.readLine();
        }
    }
    
    static class code implements Comparable{
        public int code;
        public int pos;

        public code(int code, int pos) {
            this.code = code;
            this.pos = pos;
        }
        
        
        
        public int compareTo(Object arg0) {
            code a = (code) arg0;
            if (a.code < this.code) return 1;
            if (a.code > this.code) return -1;
            if (a.pos < this.pos) return 1;
            if (a.pos > this.pos) return -1;
            return 0;
        }
    }
}
