You are given a permutation p of length n. Remove one element from permutation to make the number of records the maximum possible.

We remind that in a sequence of numbers a1, a2, ..., ak the element ai is a record if for every integer j (1 ≤ j < i) the following holds: aj < ai. 

Input

The first line contains the only integer n (1 ≤ n ≤ 105) — the length of the permutation.

The second line contains n integers p1, p2, ..., pn (1 ≤ pi ≤ n) — the permutation. All the integers are distinct.

Output

Print the only integer — the element that should be removed to make the number of records the maximum possible. If there are multiple such elements, print the smallest one.

Examples

Input

1
1


Output

1


Input

5
5 1 2 3 4


Output

5

Note

In the first example the only element can be removed.
import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        FastScanner sc=new FastScanner();
        PrintWriter pw=new PrintWriter(System.out);
        while(sc.hasNext()){
            int n=sc.nextInt();
            int[]shu=new int[n];
            for(int i=0;i<n;i++)shu[i]=sc.nextInt();
            int index=0;
            TreeMap<Integer,Integer>map=new TreeMap<>();
            int[]jl=new int[n+1];
            int max=Integer.MIN_VALUE;
            for(int i=0;i<n;i++) {
                if (max < shu[i]) jl[shu[i]] = 1;
                max = Math.max(max, shu[i]);
            }
            int[]ans=new int[n+1];
            max=Integer.MIN_VALUE;
            for(int i=0;i<n;i++){
                if(map.ceilingKey(shu[i]+1)!=null){
                    int tmp=map.ceilingKey(shu[i]+1);
                    if(tmp==max)
                    ans[tmp]++;
                }
                map.put(shu[i],1);
                max=Math.max(max,shu[i]);
            }
            int res=1;
            max=Integer.MIN_VALUE;
            for(int i=1;i<=n;i++){
                if(ans[i]-jl[i]>max){
                    max=ans[i]-jl[i];
                    res=i;
                }
            }
            pw.println(res);
            pw.flush();
        }
    }
}
class FastScanner{
    BufferedReader br;
    StringTokenizer st;
    FastScanner(){
        br=new BufferedReader(new InputStreamReader(System.in));
        st=new StringTokenizer("");
    }

    String nextLine(){
        String s="";
        try {
            s=br.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return s;
    }
    boolean hasNext(){
        String s="";
        while(!st.hasMoreTokens()){
            s=nextLine();
            if(s==null)return false;
            st=new StringTokenizer(s);
        }
        return true;
    }
    String next(){
        String s="";
        while(!st.hasMoreTokens()){
            s=nextLine();
            st=new StringTokenizer(s);
        }
        return st.nextToken();
    }
    int nextInt(){
        return Integer.valueOf(next());
    }
    long nextLong(){
        return Long.valueOf(next());
    }
    double nextDouble(){
        return Double.valueOf(next());
    }
}

