#include<cstdio>
#define NMAX (1<<15)
#define LS(x) (x<<1)
#define RS(x) (x<<1+1)
#define inf (1<<31-1)
int i,N,x,v[NMAX];
inline int min(int a, int b)
{
if(a<b) return a;
return b;
}
void update(int nod, int st,int dr, int poz, int val)
{
if(st==dr)
{
v[nod]=val;
return;
}
int fs=nod*2,fd=nod*2+1,m=(st+dr)/2;
if(poz<=m)
update(fs,st,m,poz,val);
else
update(fd,m+1,dr,poz,val);
v[nod]=min(v[fs],v[fd]);
}
void sterge(int nod, int st,int dr, int val)
{
if(st==dr)
{
v[nod]=inf;
return;
}
int fs=nod*2,fd=nod*2+1,m=(st+dr)/2;
if(v[fs]==val) sterge(fs,st,m,val);
else
sterge(fd,m+1,dr,val);
v[nod]=min(v[fs],v[fd]);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("%d",&x);
update(1,1,N,i,x);
}
return 0;
}