#include<iostream>
#include<string>
#include<algorithm>
#define MAX 10000
using namespace std;

string res = "";
//进行全排列
void f(string s) {
	if (s.size() == 0) {
		cout << res << endl;
	}
	else {
		for (int i = 0; i < s.size(); i++) {
			res += s[i];
			string temp = s;
			temp.erase(i, 1);
			f(temp);//随着递归的深度增加,res的长度会增长,当temp长度为零时,res完成,可是输出
			res.erase(res.size() - 1, 1);//将这种尝试删除
		}
	}
}
int main() {
	
	string s; cin >> s;
	f(s);

	
	return 0;
}