import math
def loc_where(obj): # 자릿수 return
i=0
while obj:
i+=1
obj=obj[1:]
return i
def first_in(n,arr):
n_one = int(n[0])
for i in range(1,n_one):
arr[i]+=int(math.pow(10,len_n-1))
arr[n_one]+=int(n[1:])+1
return arr
def second_in(n,arr,loc):
multi_num = int(math.pow(10,loc-1))
for i in range(1,10):
arr[i]+=multi_num
for i in range(0,10):
arr[i]+=(int(n[:len_n-loc])-1)*multi_num
for i in range(0,int(n[len_n-loc])):
arr[i]+=multi_num
arr[int(n[len_n-loc])]+=(int(n[len_n-loc+1:])+1)
return arr
def last_in(n,arr,loc):
for i in range(1,10):
arr[i]+=1
for i in range(0,10):
arr[i]+=(int(n[:len_n-1])-1)
for i in range(0,int(n[len_n-1])+1):
arr[i]+=1
return arr
num = input()
loc_n = loc_where(num) # 현재 진행 중인 자릿수
len_n = len(num) # 주어진 수의 자릿수
num_array = [0,0,0,0,0,0,0,0,0,0]
num_array = first_in(num,num_array)
loc_n-=1
while loc_n!=1:
num_array = second_in(num,num_array,loc_n)
loc_n-=1
num_array = last_in(num,num_array,loc_n)
for result in num_array:
print(result, end=' ')
aW1wb3J0IG1hdGgKCmRlZiBsb2Nfd2hlcmUob2JqKTogIyDsnpDrpr/siJggcmV0dXJuCiAgICBpPTAKICAgIHdoaWxlIG9iajoKICAgICAgICBpKz0xCiAgICAgICAgb2JqPW9ialsxOl0KICAgIHJldHVybiBpCgpkZWYgZmlyc3RfaW4obixhcnIpOgogICAgbl9vbmUgPSBpbnQoblswXSkKICAgIGZvciBpIGluIHJhbmdlKDEsbl9vbmUpOgogICAgICAgIGFycltpXSs9aW50KG1hdGgucG93KDEwLGxlbl9uLTEpKQogICAgYXJyW25fb25lXSs9aW50KG5bMTpdKSsxCiAgICByZXR1cm4gYXJyCgpkZWYgc2Vjb25kX2luKG4sYXJyLGxvYyk6CiAgICBtdWx0aV9udW0gPSBpbnQobWF0aC5wb3coMTAsbG9jLTEpKQogICAgZm9yIGkgaW4gcmFuZ2UoMSwxMCk6CiAgICAgICAgYXJyW2ldKz1tdWx0aV9udW0KICAgIGZvciBpIGluIHJhbmdlKDAsMTApOgogICAgICAgIGFycltpXSs9KGludChuWzpsZW5fbi1sb2NdKS0xKSptdWx0aV9udW0KICAgIGZvciBpIGluIHJhbmdlKDAsaW50KG5bbGVuX24tbG9jXSkpOgogICAgICAgIGFycltpXSs9bXVsdGlfbnVtCiAgICBhcnJbaW50KG5bbGVuX24tbG9jXSldKz0oaW50KG5bbGVuX24tbG9jKzE6XSkrMSkKICAgIHJldHVybiBhcnIKCmRlZiBsYXN0X2luKG4sYXJyLGxvYyk6CiAgICBmb3IgaSBpbiByYW5nZSgxLDEwKToKICAgICAgICBhcnJbaV0rPTEKICAgIGZvciBpIGluIHJhbmdlKDAsMTApOgogICAgICAgIGFycltpXSs9KGludChuWzpsZW5fbi0xXSktMSkKICAgIGZvciBpIGluIHJhbmdlKDAsaW50KG5bbGVuX24tMV0pKzEpOgogICAgICAgIGFycltpXSs9MQogICAgcmV0dXJuIGFycgoKbnVtID0gaW5wdXQoKQpsb2NfbiA9IGxvY193aGVyZShudW0pICMg7ZiE7J6sIOynhO2WiSDspJHsnbgg7J6Q66a/7IiYCmxlbl9uID0gbGVuKG51bSkgIyDso7zslrTsp4Qg7IiY7J2YIOyekOumv+yImApudW1fYXJyYXkgPSBbMCwwLDAsMCwwLDAsMCwwLDAsMF0KbnVtX2FycmF5ID0gZmlyc3RfaW4obnVtLG51bV9hcnJheSkKbG9jX24tPTEKd2hpbGUgbG9jX24hPTE6CiAgICBudW1fYXJyYXkgPSBzZWNvbmRfaW4obnVtLG51bV9hcnJheSxsb2NfbikKICAgIGxvY19uLT0xCm51bV9hcnJheSA9IGxhc3RfaW4obnVtLG51bV9hcnJheSxsb2NfbikKCmZvciByZXN1bHQgaW4gbnVtX2FycmF5OgogICAgcHJpbnQocmVzdWx0LCBlbmQ9JyAnKQo=