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))