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

import java.util.*;
import java.io.*;
import java.lang.*;
public class Codeforces{
    BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); 
    PrintWriter out =new PrintWriter(System.out);
    StringTokenizer st =new StringTokenizer("");
    String next(){
        if(!st.hasMoreTokens()){
            try{
                st=new StringTokenizer(br.readLine());
            }
            catch(Exception e){

            }
        }
        return st.nextToken();
    }
    int nextInt(){
        return Integer.parseInt(next());
    }
    public static void main(String[] args) {
        new Codeforces().solve();
    }
    int limit =(int)1e9;
    List<Integer> adj =new ArrayList<>();
    void solve(){ 
        int n = nextInt();
        int dp[] =new int[n+1];
        int use[] =new int[n+1];
        Arrays.fill(use,-1);
        Arrays.fill(dp,limit);
        dp[0]=0;
        findAll(1);
        for(int i:adj){
            for(int j=i;j<=n;j++){
                if(dp[j]>dp[j-i]+1){
                    dp[j]=dp[j-i]+1;
                    use[j]=i;
                }
            }
        }
        List<Integer> ans =new ArrayList<>();
        while(use[n]>-1){
            ans.add(use[n]);
            n-=use[n];
        }
        out.println(ans.size());
        // out.println(Arrays.toString(use));
        // out.println(Arrays.toString(dp);
        for(int i:ans){
            out.print(i+" ");
        }
        out.close();
    }
    void findAll(int n)
    {   
        if(n>limit) return;
        adj.add(n);
        findAll(n*10);
        findAll(n*10+1);
    }
}
