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

#include <iostream>
#include <string>
#include <queue>
#include <map>
#include <vector>
#include <set>
#include <algorithm>
#include <iterator>
#include <stdio.h>
#include <math.h>
#include <exception>
#include <stdexcept>
#include <float.h>
#include <ctype.h>
#include <stdio.h>
#include <bitset>
#include <conio.h>
#include <sstream>
#include <memory.h>
#define GL ({long long t;scanf("%lld",&t);t;})
#define ull unsigned long long
#define fora(i, f, t) for(int i = f; i<t; i++)
using namespace std;

//read number
int readint(){
	unsigned char ch;
	int number = 0;
	char sign = '+';

	// remove white spaces and any other non digit characters
	while (!isdigit(ch = getchar()) && !(ch == '-'));
	 if(ch == '-') sign = '-';

	//if it is digit
	if(isdigit(ch)) number = ch - '0';
	while(isdigit(ch = getchar())) number = number * 10 + (ch - '0');

	return sign=='+'? number : -number;
}

inline int binconvert(int m){
    int x = 0;
    stringstream (bitset<10>(m).to_string()) >> x;
    return x;
}
int main(int argc, char** argv){
    int n = readint();
    vector<int> numbers;
    int m = 64, num;
    while(n > 0){
        while( m >0 && ! ((num = binconvert(m)) <= n)){m--;}
        if(!(m>0)) break;
        while(num <= n) {n-=num; numbers.push_back(num);}
    }
    cout<<numbers.size()<<endl;
    for(const auto& nn : numbers) cout<<nn<<" ";
    cout<<endl;
    return 0;
}
