#include <iostream>
using namespace std;
const int MAX = 1000;
int a[MAX];
int n;
void swap(int &a, int &b) {
int tmp = a;
a = b;
b = tmp;
}
// Rearranges elements of a[l..r] in such a way that first comes elements
// lower or equal to M, next comes elements greater than M. Elements in each group
// come in no particular order.
// Returns an index of the first element among a[l..r] which is greater than M.
int rearrange(int l, int r, int M) {
int i = l, j = r;
while (i <= j)
if (a[i] <= M) i++;
else swap(a[i], a[j--]);
return i;
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
int L = 1, R = 2 * n;
int l = 0, r = n - 1;
while (L < R) {
int M = (L + R) / 2; // pivot element
int m = rearrange(l, r, M);
if (m - l == M - L + 1)
l = m, L = M + 1;
else
r = m - 1, R = M;
}
cout << L;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVggPSAxMDAwOwppbnQgYVtNQVhdOwppbnQgbjsKCnZvaWQgc3dhcChpbnQgJmEsIGludCAmYikgewoJaW50IHRtcCA9IGE7CglhID0gYjsKCWIgPSB0bXA7Cn0KCi8vIFJlYXJyYW5nZXMgZWxlbWVudHMgb2YgYVtsLi5yXSBpbiBzdWNoIGEgd2F5IHRoYXQgZmlyc3QgY29tZXMgZWxlbWVudHMgCi8vIGxvd2VyIG9yIGVxdWFsIHRvIE0sIG5leHQgY29tZXMgZWxlbWVudHMgZ3JlYXRlciB0aGFuIE0uIEVsZW1lbnRzIGluIGVhY2ggZ3JvdXAKLy8gY29tZSBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyLgovLyBSZXR1cm5zIGFuIGluZGV4IG9mIHRoZSBmaXJzdCBlbGVtZW50IGFtb25nIGFbbC4ucl0gd2hpY2ggaXMgZ3JlYXRlciB0aGFuIE0uCmludCByZWFycmFuZ2UoaW50IGwsIGludCByLCBpbnQgTSkgewoJaW50IGkgPSBsLCBqID0gcjsKCXdoaWxlIChpIDw9IGopCgkJaWYgKGFbaV0gPD0gTSkgaSsrOwoJCWVsc2Ugc3dhcChhW2ldLCBhW2otLV0pOwoJcmV0dXJuIGk7Cn0KCmludCBtYWluKCkgewoJY2luID4+IG47Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgY2luID4+IGFbaV07CgoJaW50IEwgPSAxLCBSID0gMiAqIG47CglpbnQgbCA9IDAsIHIgPSBuIC0gMTsKCXdoaWxlIChMIDwgUikgewoJCWludCBNID0gKEwgKyBSKSAvIDI7IC8vIHBpdm90IGVsZW1lbnQKCQlpbnQgbSA9IHJlYXJyYW5nZShsLCByLCBNKTsgCgkJaWYgKG0gLSBsID09IE0gLSBMICsgMSkgCgkJCWwgPSBtLCBMID0gTSArIDE7CgkJZWxzZQoJCQlyID0gbSAtIDEsIFIgPSBNOwoJfQoKCWNvdXQgPDwgTDsKCXJldHVybiAwOwp9