#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int findMin(vector<int>& nums) {
int n = nums.size();
int low=0;
int high=n-1;
while(low<=high){
int mid = low+(high-low)/2;
if(mid>0 && nums[mid-1]>nums[mid]){
return nums[mid];
}
if(mid<n-1 && nums[mid]>nums[mid+1]){
return nums[mid+1];
}
if(nums[mid]>nums[n-1]){
low=mid+1;
}
else{
high=mid-1;
}
}
return nums[0];
}
int main() {
// your code goes here
int n;
cin>>n;
vector<int> nums(n);
for(int i=0;i<n;i++){
cin>>nums[i];
}
cout<<findMin(nums);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAKICAKICAKICAgIGludCBmaW5kTWluKHZlY3RvcjxpbnQ+JiBudW1zKSB7CiAgICAgICAgaW50IG4gPSBudW1zLnNpemUoKTsKICAgICAgICBpbnQgbG93PTA7CiAgICAgICAgaW50IGhpZ2g9bi0xOwogICAgICAgIHdoaWxlKGxvdzw9aGlnaCl7CiAgICAgICAgICAgIGludCBtaWQgPSBsb3crKGhpZ2gtbG93KS8yOwogICAgICAgICAgICBpZihtaWQ+MCAmJiBudW1zW21pZC0xXT5udW1zW21pZF0pewogICAgICAgICAgICAgICAgcmV0dXJuIG51bXNbbWlkXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihtaWQ8bi0xICYmIG51bXNbbWlkXT5udW1zW21pZCsxXSl7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVtc1ttaWQrMV07CgogICAgICAgICAgICB9CgogICAgICAgICAgICBpZihudW1zW21pZF0+bnVtc1tuLTFdKXsKICAgICAgICAgICAgICAgIGxvdz1taWQrMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgaGlnaD1taWQtMTsKCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bXNbMF07CiAgICB9CgoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IG47CgljaW4+Pm47Cgl2ZWN0b3I8aW50PiBudW1zKG4pOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJY2luPj5udW1zW2ldOwoJCQoJfQoJCgljb3V0PDxmaW5kTWluKG51bXMpOwoJCglyZXR1cm4gMDsKfQ==