from bisect import bisect,insort N=input() a=(map(int,raw_input().split())) b=[0]*N;p={};l=[] for i,v in enumerate(a): if v in p:p[v][1]=i else:p[v]=[i,i] for i,v in enumerate(a): b[i]=max(v,l[-1]) if l else v if i==p[v][0]:insort(l,v) if i==p[v][1]:del l[bisect(l,v)-1] print " ".join(map(str,b))