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 C {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        TaskE solver = new TaskE();
        solver.solve(1, in, out);
        out.close();
    }
        static class TaskE {
         int f[];
         void add(int x,int max){
          while(x<=max){
           f[x]++;x+=x&-x;
          }
         }
         int sum(int x){
          int s=0;
          while(x>0){
           s+=f[x];x-=x&-x;
          }return s;
         }
         public void solve(int testNumber, InputReader in, PrintWriter out) {
          int n=in.nextInt();f=new int[n+1];
          TreeSet<Integer> ss=new TreeSet<>();
          int ans1[]=new int[n+1];int max=0;
          for(int i=0;i<n;i++){
           int x=in.nextInt();
           if(x>max){ans1[x]--;max=x;}
           int g=i-sum(x);
           if(g==1){
            int y=ss.higher(x);ans1[y]++;
           }add(x,n);ss.add(x);
          }
          int maxf=-2,mine=0;
          for(int i=1;i<=n;i++){
           if(ans1[i]>maxf){maxf=ans1[i];mine=i;}
          }
          out.print(mine);
         }
    }
    static class InputReader {
        BufferedReader br;
        StringTokenizer st;
        public InputReader(InputStream stream) {
            br = new BufferedReader(new InputStreamReader(stream));
            st = null;
        }

        String next() {
            while (st == null || !st.hasMoreTokens()) {
                String s = null;
                try {
                    s = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if (s == null)
                    return null;
                st = new StringTokenizer(s);
            }
            return st.nextToken();
        }

        boolean hasMoreTokens() {
            while (st == null || !st.hasMoreTokens()) {
                String s = null;
                try {
                    s = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if (s == null)
                    return false;
                st = new StringTokenizer(s);
            }
            return true;
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }
        public long nextLong() {
            return Long.parseLong(next());
        }
        public double nextDouble() {
            return Double.parseDouble(next());
        }
    }
}
 