30,228
社区成员




n = int(input())
li = list(map(int,input().split()))
stack=[0]*100010
tt=0
for i in range(n):
while(tt and stack[tt]>=li[i]):
tt-=1 # 如果栈顶元素大于当前待入栈元素,则出栈
if tt==0:
print("-1",end=' ') # 如果栈空,则没有比该元素小的值。
else:
print(stack[tt],end=" ") # 栈顶元素就是左侧第一个比它小的元素。
tt+=1
stack[tt]=li[i]
n = int(input())
li = map(int,input().split())
res = []
ans = []
for i in li:
if not res:
res.append(i)
ans.append(str(-1))
continue
else:
while i <= res[-1]:
res.pop()
if not res:
res.append(i)
ans.append(str(-1))
break
else:
ans.append(str(res[-1]))
res.append(i)
print(" ".join(ans))