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;
int main() {
  int n;
  cin >> n;
  int a[n];
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  vector<int> records;
  int max = a[0];
  records.push_back(0);
  int case1 = -1;
  int case1_records;
  for (int i = 1; i < n; i++) {
    if (max < a[i]) {
      max = a[i];
      records.push_back(i);
    } else {
      if (case1 == -1) {
        case1 = i;
      } else {
        if (a[case1] > a[i]) {
          case1 = i;
        }
      }
    }
  }
  case1_records = records.size();
  records.push_back(n);
  int case2 = -1;
  int case2_records = -1;
  int case2_pos = -1;
  for (int i = 0; i < records.size() - 1; i++) {
    int left = records[i];
    int right = records[i + 1];
    int count = 0;
    int max = 0;
    if (i > 0) {
      left = records[i - 1];
      max = a[records[i - 1]];
    }
    for (int j = left + 1; j < right; j++) {
      if (j != records[i])
        if (max < a[j]) {
          max = a[j];
          count++;
        }
    }
    if (case2 < count) {
      case2 = count;
      case2_pos = records[i];
    }
  }
  case2_records = case1_records - 1 + case2;
  if (case1 == -1) {
    cout << a[case2_pos] << endl;
  } else {
    if (case1_records < case2_records) {
      cout << a[case2_pos] << endl;
    } else if (case1_records == case2_records) {
      cout << min(a[case1], a[case2_pos]) << endl;
    } else {
      cout << a[case1] << endl;
    }
  }
  return 0;
}
