#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; typedef long long int ll; typedef long double ld; #define FOR(i,l,r) for(ll i=l;i<r;i++) #define REP(i,n) FOR(i,0,n) #define RFOR(i,l,r) for(ll i=r-1;i>=l;i--) #define RREP(i,n) RFOR(i,0,n) #define ALL(x) x.begin(),x.end() #define P pair<ll,ll> #define F first #define S second #define BS(A,x) binary_search(ALL(A),x) #define LB(A,x) (ll)(lower_bound(ALL(A),x)-A.begin()) #define UB(A,x) (ll)(upper_bound(ALL(A),x)-A.begin()) #define COU(A,x) UB(A,x)-LB(A,x) template<typename T>using min_priority_queue=priority_queue<T,vector<T>,greater<T>>; using mint=modint1000000007; //using mint=modint998244353; void chmax(ll&a,ll b){a=max(a,b);} void chmin(ll&a,ll b){a=min(a,b);} signed main(){ string S16,S2,S8;cin>>S16; vector<ll>ans(8); for(auto c:S16){ ll n=c-'A'+10;string S; REP(i,4){S=(char)('0'+n%2)+S;n/=2;} S2+=S; } while(S2.size()%3)S2='0'+S2; REP(i,S2.size()/3){ ll n=0;string S=S2.substr(3*i,3); REP(j,3)n=2*n+S[j]-'0'; ans[n]++; } ll m=0;REP(i,8)chmax(m,ans[i]); vector<ll>p;REP(i,8)if(ans[i]==m)p.push_back(i); REP(i,p.size()){cout<<p[i];if(i==p.size()-1)cout<<endl;else cout<<" ";} return 0; }