n = int(input())
state1 = []
state2 = []
state3 = 1
cnt = 20
def dfs():
global cnt, state3
if cnt == 0:
return
if len(state1) == n:
for num in state1:
print(num, end="")
print()
cnt -= 1
if state2: # 为了保证字典序,先让栈里的火车出来,再添加新的火车进去
state1.append(state2.pop())
dfs()
state2.append(state1.pop())
if state3 <= n:
state2.append(state3)
state3 += 1
dfs()
state3 -= 1
state2.pop()
dfs()