#include<bits/stdc++.h>
using namespace std;
vector<int> v, a;
bitset<55> vis;
int len;
int num(int l, int r){
int ans = 0;
for(int i = l; i <= r; ++i)
(ans *= 10) += v[i];
return ans;
}void operator>>(istream &is, vector<int> &v){
int k;
while(scanf("%1d", &k) != -1)
v.push_back(k);
}void operator<<(ostream &os, vector<int> &v){
for(int i: v)
printf("%d ", i);
}void dfs(int x, int cnt, int maxn){
if(x == len - 1){
if(cnt == maxn){
cout << a;
exit(0);
}return;
}for(int i = 1; i <= 2; ++i){
int nxt = x + i;
if(nxt < len){
int n = num(x + 1, nxt);
if(!vis[n] and n < 50){
a.push_back(n);
vis.set(n);
dfs(nxt, cnt + 1, max(maxn, n));
a.pop_back();
vis.reset(n);
}
}
}
}signed main(){
cin >> v;
len = v.size();
dfs(-1, 0, 0);
return 0;
}