#1 def solve(nums):
# 基线条件:如果数组为空,则返回一个空列表
if not nums:
return []
idx = nums.index(max(nums))
left_nums = nums[:idx]
right_nums = nums[idx + 1:]
if not left_nums and not right_nums:
return [str(nums[idx])]
return [str(nums[idx])] + \
(solve(left_nums) if left_nums else ['null']) + \
(solve(right_nums) if right_nums else ['null'])
nums = list(map(int, input().split())) if nums:
print(' '.join(solve(nums)))
#2 n = int(input()) nums = list(map(int, input().split())) cout=1 maxnum=99999 for i in nums:
if i !=maxnum:
cout-=1
if cout==0:
maxnum=i
cout=1
else:
cout+=1
print(maxnum)
#3 n = int(input()) nums = list(map(int, input().split()))
sumnum=-99999 cursum=-99999
for i in nums:
sumnum=max(i,sumnum+i)
cursum=max(cursum,sumnum)
print(cursum)
#6 n=int(input()) dp=[100000 for i in range(101)] dp[2]=1 dp[4]=2 dp[6]=3 dp[5]=1 dp[7]=1 for i in range(8,101):
minnum=min(dp[i-7]+1,dp[i-5]+1)
minnum=min(minnum,dp[i-2]+1)
dp[i]=minnum
print(-1 if dp[n]==100000 else dp[n])
#7 from math import factorial m,n=map(int,input().split(' ')) print(int(factorial(m+n-2)/factorial(m-1)/factorial(n-1)))
#8 dp=[1 for i in range(21)] for i in range(2,21):
dp[i]=dp[i-1]+dp[i-2]
print(dp[int(input())]) n=list(map(int,input().split(' ')))
#9 N, c = map(int, input().split()) W = list(map(int, input().split())) V = list(map(int, input().split())) dp = [0] * (c + 1) for i in range(N): for j in range(c, W[i] - 1, -1):
dp[j] = max(dp[j], dp[j - W[i]] + V[i])
print(dp[c])
#10 s = input() res = '' for i in range(len(s)): for l, r in (i, i), (i, i + 1):
while l >= 0 and r < len(s) and s[l] == s[r]:
if r - l + 1 > len(res):
res = s[l:r+1]
l -= 1
r += 1
print(res)
#14 def c(i,t):
if i==len(n):
return t==0
return c(i+1,t+n[i])+c(i+1,t-n[i])
print(c(0,int(input())))
#15 from itertools import product digits = input() mapping = {'2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl', '6': 'mno', '7': 'pqrs', '8': 'tuv', '9': 'wxyz'} combinations = [''.join(p) for p in product(*(mapping[d] for d in digits))] print(f"[{', '.join(combinations)}]")
#16 def a(n):
def c(i, m):
return 1 if i > n else sum(c(i + 1, m | 1 << j) for j in range(n) if not m & (1 << j) and ((j + 1) % i == 0 or i % (j + 1) == 0))
return c(1, 0)
print(a(int(input())))
#17 from itertools import combinations n, k = map(int, input().split(' ')) for combo in combinations(range(1, n + 1), k):
print(*combo)
1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1033 1034 1035 1036 1037 1038 1039 1040 1041 1043 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1070 1077 1078 1084 1085 1086 1087 1113 1116 1119 1217 1219 1418 1419 1548 1561 1562 1563 1564 1565 1575 1576 1578 1579 1580 1581 1584 1586 1587 1588 1603 1619 1627 1633 1634 1635 1636 1638 1651 1652 1653 1654 1835 1836 1846 1847 1852 1873 1875 1876 1877 1878 1941 1943 2016