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.ArrayList;
import java.util.Scanner;


public class QuasiBinary {

    public static void main(String[] args) {
        int i = 0 ;
        int j = 0 ;
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
//      Object[] array = new Object[6];
//      for (i=0 ; i<6 ; i++)
//      {
//          array[i] = new int[10];
//      }
//      ArrayList<Integer> units = new ArrayList<Integer>();
//      ArrayList<Integer> tens = new ArrayList<Integer>();
//      ArrayList<Integer> hundreds = new ArrayList<Integer>();
//      ArrayList<Integer> thousands = new ArrayList<Integer>();
//      ArrayList<Integer> tenthousands = new ArrayList<Integer>();
//      ArrayList<Integer> millions = new ArrayList<Integer>();
        
        
        int arr[][] = new int[7][9] ;
        int[] remainders = new int[7];
        int[] results = new int[9];
        int result = n ;
        int remainder = 0 ;
        
        i = 0 ;
        while (result != 0 && i < 7)
        {
//          System.out.println("***");
            remainder = result%10 ;
            result = result/10 ;
            remainders[i] = remainder ;
            i++;
            
        }
        
        for (i=0 ; i<7 ; i++)
        {
            while (remainders[i]>0)
            {
                arr[i][j] = 1 ;
                remainders[i]-- ;
                j++ ;
            }
            j = 0 ;
        }
//      for (i=0 ; i<6 ; i++)
//      {
//          for (j=0 ; j<9 ; j++)
//          {
//              System.out.print(arr[i][j]);
//          }
//          System.out.println();
//      }
        
//      System.out.println(">>>>>>>>>>>>>>>");
        
        for (j=0 ; j<9 ; j++)
        {
            for (i=0 ; i<7 ; i++)
            {
//              System.out.println("i : "+i+" ; j : "+j);
//              System.out.println("rem : "+remainders[i]+" _ i : "+i+" _ pow "+Math.pow(10, i));
                results[j] +=  (arr[i][j] * (int)Math.pow(10, i));
            }
        }
        
//      for (i=0 ; i<9 ; i++)
//      {
//          System.out.println("OOOOO"+results[i]);
//      }
        i = 0 ;
        int counter = 0 ;
        while (i<9 && results[i]!=0)
        {
            counter++ ;
            i++ ;
        }
        System.out.println(counter);
        for(i=0 ; i<counter ; i++)
        {
            System.out.print(results[i]);
            if (i!=counter-1)
            System.out.print(" ");
        }
    }

}
