#include <bits/stdc++.h>
using namespace std;
void combination(string s, int l, int r) {
if (l == r) {
for (auto g : s) {
cout << g << " ";
}
cout << endl;
return;
}
for (int i = l; i <= r; i++) {
swap(s[i], s[l]);
combination(s, l + 1, r);
swap(s[i], s[l]); // backtrack
}
}
int main() {
string s;
cin >> s;
int l = 0;
int r = s.size() - 1; // last index
combination(s, l, r);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGNvbWJpbmF0aW9uKHN0cmluZyBzLCBpbnQgbCwgaW50IHIpIHsKICAgIGlmIChsID09IHIpIHsKICAgICAgICBmb3IgKGF1dG8gZyA6IHMpIHsKICAgICAgICAgICAgY291dCA8PCBnIDw8ICIgIjsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBmb3IgKGludCBpID0gbDsgaSA8PSByOyBpKyspIHsKICAgICAgICBzd2FwKHNbaV0sIHNbbF0pOwogICAgICAgIGNvbWJpbmF0aW9uKHMsIGwgKyAxLCByKTsKICAgICAgICBzd2FwKHNbaV0sIHNbbF0pOyAvLyBiYWNrdHJhY2sKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBzdHJpbmcgczsKICAgIGNpbiA+PiBzOwoKICAgIGludCBsID0gMDsKICAgIGludCByID0gcy5zaXplKCkgLSAxOyAgIC8vIGxhc3QgaW5kZXgKCiAgICBjb21iaW5hdGlvbihzLCBsLCByKTsKCiAgICByZXR1cm4gMDsKfQo=