# 此题要用到深度遍历dfs
# 全排列问题
def dfs(depth, n, sumR, arr, visted, flag):
nums = []
if flag[0]:
return
if depth > n:
# 此处复制数组要注意,不可直接赋值给nums
for i in arr:
nums.append(i)
if numberGame(n, nums, sumR):
flag[0] = 1
for i in range(1, n+1):
print(arr[i],"", end="")
return
else:
for i in range(1, n+1):
if not visted[i]:
arr[depth] = i
visted[i] = True
dfs(depth+1, n, sumR, arr, visted, flag)
visted[i] = False
# 判断数组是否符合条件
def numberGame(n, nums, sumR):
temp = n
while temp > 0:
for i in range(1, temp):
nums[i] = nums[i]+nums[i+1]
temp -= 1
return nums[1] == sumR
inp = input().split()
n = int(inp[0])
sumR = int(inp[1])
# 前后各扩宽一格,方便我们对数组判断时不用考虑边界问题
visted = [False] * (n+2)
arr = [0] * (n+2)
flag = [0]
dfs(1, n, sumR, arr, visted, flag)