/*#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
using namespace std;
//最大元
int a[100];
int dg(int l,int r)
{
if(l==r)
return a[l];
int mid=(l+r)/2;
int s1=dg(l,mid);
int s2=dg(mid+1,r);
return max(s1,s2);
}
int main()
{
int n;
while(cin>>n)
{
for(int i=1;i<=n;i++)
cin>>a[i];
cout<<dg(1,n)<<endl;
}
return 0;
}*/
/*#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
using namespace std;
//归并排序
int a[100],b[100];
void Merge(int l,int r,int ll,int rr)
{
int k=l;
int s1=l;
int s2=ll;
while(k<=rr&&s1<=r&&s2<=rr)
{
if(a[s1]>=a[s2])
{
b[k++]=a[s1];
s1++;
}
else
{
b[k++]=a[s2];
s2++;
}
}
while(s1<=r)
{
b[k++]=a[s1++];
}
while(s2<=rr)
{
b[k++]=a[s2++];
}
}
void s_ort(int l,int r)
{
if(l<r)
{
int mid=(l+r)/2;
s_ort(l,mid);
s_ort(mid+1,r);
Merge(l,mid,mid+1,r);
for(int i=l;i<=r;i++)
a[i]=b[i];
}
}
int main()
{
int n;
while(cin>>n)
{
for(int i=1;i<=n;i++)
cin>>a[i];
s_ort(1,n);
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
}
return 0;
}*/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
using namespace std;
//最大元
int a[100];
int dg(int l,int r)
{
if(l==r)
return a[l];
int mid=(l+r)/2;
int s1=dg(l,mid);
int s2=dg(mid+1,r);
return max(s1,s2);
}
int main()
{
int n;
while(cin>>n)
{
for(int i=1;i<=n;i++)
cin>>a[i];
cout<<dg(1,n)<<endl;
}
return 0;
}*/
/*#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
using namespace std;
//归并排序
int a[100],b[100];
void Merge(int l,int r,int ll,int rr)
{
int k=l;
int s1=l;
int s2=ll;
while(k<=rr&&s1<=r&&s2<=rr)
{
if(a[s1]>=a[s2])
{
b[k++]=a[s1];
s1++;
}
else
{
b[k++]=a[s2];
s2++;
}
}
while(s1<=r)
{
b[k++]=a[s1++];
}
while(s2<=rr)
{
b[k++]=a[s2++];
}
}
void s_ort(int l,int r)
{
if(l<r)
{
int mid=(l+r)/2;
s_ort(l,mid);
s_ort(mid+1,r);
Merge(l,mid,mid+1,r);
for(int i=l;i<=r;i++)
a[i]=b[i];
}
}
int main()
{
int n;
while(cin>>n)
{
for(int i=1;i<=n;i++)
cin>>a[i];
s_ort(1,n);
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
}
return 0;
}*/