#include <bits/stdc++.h>

using namespace std;

#define inf 100000000
#define maxn 1000000

#define pb push_back

vector<int> v1, v2, v3;
int dp[maxn+100];

void solve1(int num)
{
    if(num==0)
        return;
    int i, curmin, cura, n;
    curmin = inf;
    for(i=0; v1[i]<=num; i++){
        cura = 1+dp[num-v1[i]];
        if(cura<curmin){
            curmin = cura;
            n = v1[i];
        }
    }
    v3.pb(n);
    solve1(num-n);
}

int main()
{

    int i, j, num;
    v1.pb(1);
    for(i=2; i<=6; i++){
    	num = 1;
    	for(j=0; j<i-1; j++)
    		num*=10;
        v2.clear();
        for(j=0; j<v1.size(); j++){
            v2.pb(num+v1[j]);
        }
        v1.pb(num);
        for(j=0; j<v2.size(); j++)
            v1.pb(v2[j]);
    }
    v1.pb(1000000);
    sort(v1.begin(), v1.end());
    dp[1] = 1;
    for(i=2; i<=maxn; i++){
    	dp[i] = inf;
    	for(j=0; v1[j]<=i; j++){
    		dp[i] = min(dp[i], (1+dp[i-v1[j]]));
    	}
    }
    //cout << dp[2] << "\n";
        scanf("%d", &num);
        solve1(num);
        printf("%d\n", v3.size());
        for(i=0; i<v3.size(); i++)
            printf("%d ", v3[i]);
        printf("\n");
    return 0;
}