#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;

void rec(char * inp, char* outp, int i, int j){
	//base case
	if(inp[i]=='\0'){
		outp[j]='\0';
		//if(outp<inp){
	     cout<<outp<<endl;
		//}	 
	}
	//
	for(int k=i;inp[k]!='\0';k++){
		swap(inp[i],inp[k]);
		outp[j]=inp[i];
		rec(inp,outp,i+1,j+1);
		swap(inp[i],inp[k]);
	}
}

int main() {
	char inp[100],outp[100];
	cin>>inp;
	sort(inp,inp+strlen(inp));
	rec(inp,outp,0,0);
	return 0;
}