#include<iostream>
#pragma argsused
using namespace std;
int coun= 0 ,cont= 2 ,num= 0 ,first= 0 ,second= 0 ;
string arr[ 100 ] ;
string a;
void Perm( string* array, int size, int N)
{
if ( N == size) {
for ( int i = 0 ; i < size; i++ ) {
cout << array[ i] << ' ' ;
}
coun++ ;
cout << endl;
}
else
{
for ( int i = N; i < size; i++ ) {
swap( array[ i] , array[ N] ) ;
Perm( array, size, N+ 1 ) ;
swap( array[ i] , array[ N] ) ;
}
}
}
int main( int argc, char * argv[ ] )
{
while ( cin >> a) {
arr[ num++ ] = a;
if ( getchar ( ) == '\n ' ) break ;
}
while ( first< num) {
coun++ ;
cout << arr[ first] << endl;
first++ ;
}
for ( second; second < num; second++ ) {
swap( arr[ second] , arr[ 0 ] ) ;
cout << arr[ 0 ] << ' ' << arr[ 1 ] << endl;
coun++ ;
cout << arr[ 0 ] << ' ' << arr[ 2 ] << endl;
coun++ ;
swap( arr[ second] , arr[ 0 ] ) ;
}
while ( cont< num) {
cont++ ;
Perm( arr,cont,0 ) ;
}
cout << "次數:" << coun<< endl;
system ( "pause" ) ;
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNwcmFnbWEgYXJnc3VzZWQKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGNvdW49MCxjb250PTIsbnVtPTAsZmlyc3Q9MCxzZWNvbmQ9MDsKc3RyaW5nIGFyclsxMDBdOwpzdHJpbmcgYTsKdm9pZCBQZXJtKHN0cmluZyogYXJyYXksIGludCBzaXplLCBpbnQgTikKewogICAgaWYoTiA9PSBzaXplKSB7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHNpemU7IGkrKyl7CiAgICAgICAgICAgIGNvdXQ8PGFycmF5W2ldPDwnICcgICA7CiAgICAgICAgfQogICAgICAgIGNvdW4rKzsKICAgICAgICBjb3V0PDxlbmRsOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGZvcihpbnQgaSA9IE47IGkgPCBzaXplOyBpKyspewogICAgICAgICAgICBzd2FwKGFycmF5W2ldLCBhcnJheVtOXSk7CiAgICAgICAgICAgIFBlcm0oYXJyYXksIHNpemUsIE4rMSk7CiAgICAgICAgICAgIHN3YXAoYXJyYXlbaV0sIGFycmF5W05dKTsKICAgICAgICB9CiAgICB9Cgp9CmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKICAgIHdoaWxlKGNpbj4+YSl7CiAgICAgYXJyW251bSsrXSA9IGE7CiAgICAgaWYoZ2V0Y2hhcigpPT0nXG4nKWJyZWFrOwogIH0KICAgIHdoaWxlKGZpcnN0PG51bSl7CiAgICAJY291bisrOwogICAgCWNvdXQ8PGFycltmaXJzdF08PGVuZGw7CiAgICAJZmlyc3QrKzsKICAgIH0KICAgCiAgICBmb3Ioc2Vjb25kOyBzZWNvbmQgPCBudW07IHNlY29uZCsrKXsKICAgICAgICAgICAgc3dhcChhcnJbc2Vjb25kXSwgYXJyWzBdKTsKCQkJY291dDw8YXJyWzBdPDwnICc8PGFyclsxXTw8ZW5kbDsKCQkJY291bisrOwoJCQljb3V0PDxhcnJbMF08PCcgJzw8YXJyWzJdPDxlbmRsOwoJCQljb3VuKys7CiAgICAgICAgICAgIHN3YXAoYXJyW3NlY29uZF0sIGFyclswXSk7CiAgICAgICAgfQogICAgd2hpbGUoY29udDxudW0pewogICAgY29udCsrOwogICAgICAgIFBlcm0oYXJyLGNvbnQsMCk7CiAgICAKICB9CgogIGNvdXQ8PCLmrKHmlbg6Ijw8Y291bjw8ZW5kbDsKICBzeXN0ZW0oInBhdXNlIik7CiAgcmV0dXJuIDA7Cgp9