import java.util.*;
public class Main
{
static Scanner scn=new Scanner(System.in);
public static void main(String args[])
{
// System.out.println("Enter a string ");
String str=scn.nextLine();
System.out.println(getSS(str));
System.out.println( power(2,str.length()));
}
public static ArrayList<String> getSS(String str) // get SS: getSubsequences
{
if(str.length()==0)
{
ArrayList<String> base=new ArrayList<>();
base.add(" ");
return base;
}
char cc= str.charAt(0);
String ros=str.substring(1);
ArrayList<String> myResult= new ArrayList<>();
ArrayList<String> recResult= getSS(ros); // recResult: recursion Result
for(int i=0;i<recResult.size();i++)
{
myResult.add(recResult.get(i));
myResult.add(cc+recResult.get(i));
}
return myResult;
}
public static int power(int x, int n)
{
if(n==0)
{
return 1;
}
int pnm1= power(x,(n-1));
int pn=x*pnm1;
return (pn);
}
}