def qpail(num, path, used, n,res): if len(path) == n: res.append(path[:]) return for i in range(len(num)): if used[i] == True: continue path.append(num[i]) used[i] = True qpail(num, path, used, n, res) path.pop() used[i] = False def p(s): res = [] qpail(s, [], [False]*len(s), len(s),res) return res s = list(input()) res = [] a = p(s) for i in a: print(''.join(i))