#include<bits/stdc++.h>
using namespace std;
int f[30],a[60],n,m;char st[60];deque<int>stk;
void dfs(int x)
{
if(x>n+1)return;
if(stk.size()==m)
{
while(!stk.empty())
{
cout<<stk.front()<<" ";
stk.pop_front();
}
exit(0);
}
if(a[x]==0)return;
if(f[a[x]]==0)
{
f[a[x]]=1;
stk.push_back(a[x]);
dfs(x+1);
f[a[x]]=0;
stk.pop_back();
}
if(f[a[x]*10+a[x+1]]==0)
{
int y=a[x]*10+a[x+1];
if(y>m)return;
f[y]=1;
stk.push_back(y);
dfs(x+2);
f[y]=0;
stk.pop_back();
}
}
int main()
{
scanf("%s",st+1);n=strlen(st+1);
n>9?m=(n-9)/2+9:m=n;
for(int i=1;i<=n;i++)a[i]=st[i]-48;
dfs(1);
return 0;
}