111111
 100009
 10011
 1000000
 8
 10201
 102030
 908172
 123456
 415
 900000
 21
 909090
 314159
 999999
 909823
 987654
 1453
 1435
 98
 10
 2
 1

1
111111
 9
100001 1 1 1 1 1 1 1 1
 1
10011
 1
1000000
 8
1 1 1 1 1 1 1 1
 2
10101 100
 3
101010 1010 10
 9
101111 101011 101010 101010 101010 101010 101010 101000 100000
 6
111111 11111 1111 111 11 1
 5
111 101 101 101 1
 9
100000 100000 100000 100000 100000 100000 100000 100000 100000
 2
11 10
 9
101010 101010 101010 101010 101010 101010 101010 101010 101010
 9
111111 101011 101011 1011 11 1 1 1 1
 9
111111 111111 111111 111111 111111 111111 111111 111111 111111
 9
101111 101111 101101 101100 101100 101100 101100 101100 101000
 9
111111 111111 111111 111111 111110 111100 111000 110000 100000
 5
1111 111 111 110 10
 5
1111 111 111 101 1
 9
11 11 11 11 11 11 11 11 10
 1
10
 2
1 1
 1
1

from collections import defaultdict


def quasiBelow(n):
    d = defaultdict(list)
    d[0].append(0)
    d[1].append(1)
    for i in range(2, len(str(n)) + 1):
        for item in d[i - 1]:
            d[i].append(item * 10 + 0)
            d[i].append(item * 10 + 1)
    return d


def minRepr(n):
    d = quasiBelow(n)

    dp = [(0, [])] * (n + 5)

    dp[0] = (0, [])
    dp[1] = (1, [1])
    for i in range(2, n + 1):
        m = len(str(i))

        minR = i + 1, []
        minItem = d[m][0]

        for item in d[m]:
            if i - item < 0:
                continue

            a = dp[i - item]

            if a[0] < minR[0]:
                minR = a
                minItem = item

        dp[i] = 1 + minR[0], [minItem] + minR[1]
        # print(i, dp[i])

    return dp[n]


n = int(input())
res = minRepr(n)
print(res[0])
for v in res[1]:
    print(v, end=' ')
