class Main {
public static void main(String[] args) {
String s = "babaabbabbabb";
char[] p = new char[s.length()];
for(int i = 0;i<s.length();i++)
{
p[i] = s.charAt(i);
}
f(p,0);
}
public static void f(char[] s,int k)
{
if(k==13)
{
if(check(s)==true)
{
print(s);
}
}
for(int i = k;i<s.length;i++)
{
char temp = s[k];
s[k] = s[i];
s[i] = temp;
f(s,k+1);
temp = s[i];
s[i] = s[k];
s[k] = temp;
}
}
public static void print(char[] s)
{
String ans = "";
for(int i = 0;i<s.length;i++)
{
ans = ans+s[i];
}
System.out.println(ans);
}
public static boolean check(char[] s)
{
int inital = 2;
int sum = inital;
boolean usedUp = false;
for(int i = 0;i<s.length;i++)
{
if(s[i]=='a')
{
sum = 2*sum;
}
else if(s[i]=='b')
{
sum = sum-1;
}
}
if(sum==2)
{
usedUp = true;
}
return usedUp;
}
}