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.
#include <bits/stdc++.h>
using namespace std;
const int N = 200051;
int n;
int a[N];
int treelef[N * 2], treerig[N * 2];
int sum[N];
set<int> ins;
void solve() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  if (n == 1)
    printf("1\n");
  else {
    int maxnum = a[1], maxd = 1;
    sum[1] = -1;
    ins.insert(a[1]);
    for (int i = 2; i <= n; i++) {
      if (a[i] > maxnum) {
        maxnum = a[i];
        maxd = i;
        sum[i] = -1;
      } else {
        int x = *ins.upper_bound(a[i]);
        if (x == maxnum) sum[maxd]++;
      }
      ins.insert(a[i]);
    }
    int ans = -10, ansq = 0;
    for (int i = 1; i <= n; i++)
      if (sum[i] >= ans) {
        if ((ans == sum[i] && a[i] < ansq) || (ans < sum[i])) ansq = a[i];
        ans = sum[i];
      }
    printf("%d\n", ansq);
  }
}
int main() {
  int T;
  T = 1;
  while (T--) {
    solve();
  }
  return 0;
}
