# 接收输入一个不大于5位的数字
n = int(input())
# 初始化计数位数c
c = 0
a = []
# 初始化求和
b = 0
m = n
while n > 0:
    # s就是个位上的数字
    s = n % 10
    # 每次得出个位数,就加入到a列表中
    a.insert(0, s)
    # n地板除10,得出除了个位数以外的整数,进行下一次循环
    n //= 10
    # 计数位数自加1
    c += 1
print(c)

# 遍历列表,求出每一个元素,并打印输出
for v in a:
    print(v, end=' ')
print()
#逆序输出
while m > 0:
    #最先得出的余数乘以10,再加上第二次的余数,再循环得出逆序数
    b = b * 10 + m % 10
    m //= 10
print(b)

/**************************************************************
	Problem: 1962
	User: admin
	Language: Python
	Result: Accepted
	Time:104 ms
	Memory:34480 kb
****************************************************************/