#include<bits/stdc++.h>
#define int long long
using namespace std;
priority_queue<int> q1;
priority_queue<int> q2;
priority_queue<int> q3;
int pointer1=0,pointer2=0,pointer3=0;
bool b1,b2,b3;
void wh()
{
b1=(!pointer1)&&(!pointer2)&&(pointer3==1);
b2=(!pointer2)&&(!pointer3)&&(pointer1==1);
b3=(!pointer3)&&(!pointer1)&&(pointer2==1);
return;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int n;
cin>>n;
int a;
cin>>a;
q1.push(a);
pointer1++;
for(int i=1;i<n;i++)
{
cin>>a;
if(i%2)
{
q2.push(a);
pointer1++;
}
else
{
q1.push(a);
pointer2++;
}
}
wh();
while(!(b1||b2||b3))
{
wh();
if(b1||b2||b3) break;
while(!q1.empty()&&!q2.empty())
{
if(q1.top()==q2.top())
{
q1.pop();
q2.pop();
pointer1=--pointer2;
wh();
if(b1||b2||b3) break;
}
else
{
q3.push(q1.top());
q1.pop();
pointer1--;
pointer3++;
wh();
if(b1||b2||b3) break;
}
if(q3.top()==q2.top())
{
q3.pop();
q2.pop();
pointer3=--pointer2;
wh();
if(b1||b2||b3) break;
}
else
{
q1.push(q3.top());
q3.pop();
pointer3--;
pointer1++;
wh();
if(b1||b2||b3) break;
}
if(q1.top()==q3.top())
{
q1.pop();
q3.pop();
pointer1=--pointer3;
wh();
if(b1||b2||b3) break;
}
else
{
q2.push(q1.top());
q1.pop();
pointer1--;
pointer2++;
wh();
if(b1||b2||b3) break;
}
}
}
if(b1)
{
cout<<q3.top();
return 0;
}
if(b2)
{
cout<<q1.top();
return 0;
}
else
{
cout<<q2.top();
return 0;
}
}