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

//Harshit
 
#include "bits/stdc++.h"
#define l1 long long int
#define in1(x) l1 x; cin>>x;
#define in2(x,y) l1 x;l1 y; cin>>x; cin>>y
#define rep(x,y,z) for(l1 x=y;x<z;x++)
#define v1ofl1 vector<l1>v1;
#define v2ofl1 vector<l1>v2;
#define vofl1 vector<l1>v;
#define vl1 vector<l1>
#define all(v) v.begin(),v.end()
#define F first
#define S second
#define PI 3.14159265
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;

bool cmp( pair<int,int> p1, pair<int,int> p2 )
{
    if(p1.first!=p2.first) return p1>p2;
    return p1<p2;
}

 long long int binpow(long long int a,long long int b)
{
	long long int res=1;
	while(b>0)
	{
		if(b%2==0)
			res=res*a;
		a*=a;
		b/=2;
	}
	return res;
} 

long long int fact(l1 n)
{
	if(n==1||n==0)
		return 1;
	else
		return n*fact(n-1);
}

long long int ncr(l1 n,l1 r)
{
	l1 a=fact(n);
	l1 b=fact(r);
	l1 c=fact(n-r);
	return a/(b*c);
}

string dectobin(l1 n)
{
	string s = bitset<32> (n).to_string(); 
	return s;
}

bool isPrime(l1 n)
{
    if(n==1)
        return false;
    if(n==2)
        return true;
    if(n%2==0)
        return false;
    for(l1 i=3;i*i<=n;i+=2)
        if(n%i==0)
            return false;
    return true;
}

vl1 primes;
void primeSieve(l1 n)
{
    l1 p[n+1]={0};
    p[0]=p[1]=0;
    p[2]=1;

    for(l1 i=3;i<=n;i+=2)
    {
        p[i]=1;
    }

    for(l1 i=3;i<=n;i+=2)
    {
        if(p[i])
        {
            for(l1 j=i*i;j<=n;j+=2*i)
            {
                p[j]=0;
            }
        }
    }
    for(l1 i=2;i<=n;i++)
    {
        if(p[i])
            primes.push_back(i);
    }
}
// *******************************************************************************
// 									MAIN CODE
// *******************************************************************************


void solve()
{
	string s;
	cin>>s;

	// vl1 v;
	std::vector<string> v;

	for(int i=0;i<s[0]-48;i++)
	{
		v.push_back("1");
	}

	for(int i=1;i<s.length();i++)
	{
		for(int j=0;j<s[i]-48;j++)
		{
			v[j]+="1";
		}
		for(int j=s[i]-48;j<s[0]-48;j++)
		{
			v[j]+="0";
		}
	}

	for(auto x:v)
		cout<<x<<" ";


}

int main()
{
	fast
 
    #ifdef NCR
        init();
    #endif
	l1 T=1;
	// cin>>T;
	while(T--)
	solve();
	return 0;
}