/*This is by Technical Bangla from University of Dhaka*/
#include <stdio.h>
#define MAX 20
char str[ MAX] ,taken[ MAX] ,used[ MAX] ;
void Permutation( char * a,int i,int n)
{
int j;
if ( i== n- 1 )
{
int k= 0 ;
while ( k< n)
{
for ( i= 0 ; i< n; i++ )
{
if ( i== k) printf ( "%c" ,a[ n- 1 ] ) ;
if ( i! = n- 1 ) printf ( "%c" ,taken[ i] ) ;
}
printf ( "\n " ) ; k++ ;
}
}
else
{
for ( j= 1 ; j< n; j++ )
{
if ( used[ n- j- 1 ] ) ;
else
{
used[ n- j- 1 ] = 1 ;
taken[ i] = a[ n- j- 1 ] ;
Permutation( a,i+ 1 ,n) ;
used[ n- j- 1 ] = 0 ;
}
}
}
return ;
}
int main( )
{
int len,first= 1 ;
while ( scanf ( " %[^\n ]s" ,str) ! = EOF )
{
for ( len= 0 ; str[ len] ; len++ ) used[ len] = 0 ;
Permutation( str,0 ,len) ;
printf ( "\n " ) ;
}
return 0 ;
}
LypUaGlzIGlzIGJ5IFRlY2huaWNhbCBCYW5nbGEgZnJvbSBVbml2ZXJzaXR5IG9mIERoYWthKi8KI2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgTUFYIDIwCgpjaGFyIHN0cltNQVhdLHRha2VuW01BWF0sdXNlZFtNQVhdOwoKdm9pZCBQZXJtdXRhdGlvbihjaGFyICphLGludCBpLGludCBuKQp7CiAgICBpbnQgajsKICAgIGlmKGk9PW4tMSkKICAgIHsKICAgICAgICBpbnQgaz0wOwogICAgICAgIHdoaWxlKGs8bikKICAgICAgICB7CiAgICAgICAgICAgIGZvcihpPTA7aTxuO2krKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoaT09aykgcHJpbnRmKCIlYyIsYVtuLTFdKTsKICAgICAgICAgICAgICAgIGlmKGkhPW4tMSkgcHJpbnRmKCIlYyIsdGFrZW5baV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHByaW50ZigiXG4iKTtrKys7CiAgICAgICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGZvcihqPTE7ajxuO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKHVzZWRbbi1qLTFdKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB1c2VkW24tai0xXT0xOwogICAgICAgICAgICAgICAgdGFrZW5baV09YVtuLWotMV07CiAgICAgICAgICAgICAgICBQZXJtdXRhdGlvbihhLGkrMSxuKTsKICAgICAgICAgICAgICAgIHVzZWRbbi1qLTFdPTA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBsZW4sZmlyc3Q9MTsKICAgIHdoaWxlKHNjYW5mKCIgJVteXG5dcyIsc3RyKSE9RU9GKQogICAgewogICAgICAgIGZvcihsZW49MDtzdHJbbGVuXTtsZW4rKykgdXNlZFtsZW5dPTA7CiAgICAgICAgUGVybXV0YXRpb24oc3RyLDAsbGVuKTsKICAgICAgICBwcmludGYoIlxuIik7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=