#include
using namespace std;
#include
string temp;
void subSequence(string S,int pointer){
if(pointer == S.size()){
cout<<temp<<" ";
return;
}
subSequence(S,pointer+1);
temp.push_back(S[pointer]);
subSequence(S,pointer+1);
return;
}
int main(){
string S;
cin>>S;
subSequence(S,0);
cout<<endl;
cout<<pow(2,S.size());
}
wrong ouput