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.io.*;
import java.util.*;


public class Codeforces {

    static char grid[][];
    public static void main(String[] args) throws IOException {
        Reader.init(System.in);
        /*arr = (Reader.next()).toCharArray();
        check(0, "");
        
        if(x != 0)
            System.out.println("YES");
        else
            System.out.println("NO");*/
        
        /*String a = Reader.next();
        if(a.matches(".*C.*O.*D.*E.*F.*O.*R.*C.*E.*S.*"))
            System.out.println("YES");
        else
        System.out.println("NO");*/
        
        
        n = Reader.nextInt();
        StringBuilder alter = new StringBuilder();
        if(n < 10){
            System.out.println(n);
            for(int i = 0; i < n; i++)
                System.out.print(1 + " ");
            return;
        }
        
        if(n % 10 == 0 && n < 100){
            System.out.println(n / 10);
            for(int i = 0; i < n/10; i++)
                System.out.print("10 ");
            return;
        }
        
        int c = 0;
        StringBuilder ans = new StringBuilder();
        
        while(n != 0){
            
            x = (n + "").length();
            getNum(0, "");
            
            while(max <= n){
                n -= max;
                ans.append(max + " ");
                c++;
                
                if(n % 10 == 0){
                    alter.append(n / 10 + c + "\n");
                    alter.append(ans);
                    for(int i = 0; i < n/10; i++)
                        alter.append("10 ");
                    break;
                }
            }
            
            max = 0;
            if(n < 10){
                c += n;
                for(int i = 0; i < n; i++)
                    ans.append(1 + " ");
                n = 0;
            }
        }
        
        if(alter.length() != 0 && alter.length() < ans.length())
            System.out.println(alter);
        
        else{
        System.out.println(c);
        System.out.println(ans);
    
        }
    }
    
    static int x;
    static char arr[];
    public static void check(int i, String s){
        
       if(s.length() > 10) return;
        if(i ==  arr.length){
            if(s.equals("CODEFORCES"))
                x++;
            return;
        }
        
        check(i+1, s);
        check(i+1, s +arr[i] + "");
    }
    
    static int n, max = 0;
    
    public static void getNum(int i, String s){
        if(i == x){
            
            if(Integer.parseInt(s) <= n)
                if(Integer.parseInt(s) > max)
                    max = Integer.parseInt(s);
            return;
        }
        
        getNum(i+1, s + "0");
        getNum(i+1, s + "1");
    }
}
class Reader {

    static BufferedReader reader;
    static StringTokenizer tokenizer;

    /**
     * call this method to initialize reader for InputStream
     */
    static void init(InputStream input) {
        reader = new BufferedReader(
                new InputStreamReader(input));
        tokenizer = new StringTokenizer("");
    }

    /**
     * get next word
     */
    static String next() throws IOException {
        while (!tokenizer.hasMoreTokens()) {
            //TODO add check for eof if necessary
            tokenizer = new StringTokenizer(
                    reader.readLine());
        }
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException {
        return Integer.parseInt(next());
    }

    static byte nextByte() throws IOException {
        return Byte.parseByte(next());
    }

    static long nextLong() throws IOException {
        return Long.parseLong(next());
    }

    static double nextDouble() throws IOException {
        return Double.parseDouble(next());
    }
}