#include <bits/stdc++.h>
using namespace std;
int n;
vector<vector<char>> a;
string s;
void rec(int i) {
if(i == n) {
cout << s << endl;
} else {
for(size_t j = 0; j < a[i].size(); j++) {
if(!j || (j && a[i][j]!=a[i][j-1])) {
s[i] = a[i][j];
rec(i+1);
}
}
}
}
int main() {
a.push_back({'a','b','a'});
a.push_back({'c','c'});
a.push_back({'d','e','e','f'});
n = a.size();
for(int i = 0; i < n; i++) {
sort(a[i].begin(), a[i].end());
s += "#";
}
rec(0);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG47CnZlY3Rvcjx2ZWN0b3I8Y2hhcj4+IGE7CgpzdHJpbmcgczsKCnZvaWQgcmVjKGludCBpKSB7CglpZihpID09IG4pIHsKCQljb3V0IDw8IHMgPDwgZW5kbDsKCX0gZWxzZSB7CgkJZm9yKHNpemVfdCBqID0gMDsgaiA8IGFbaV0uc2l6ZSgpOyBqKyspIHsKCQkJaWYoIWogfHwgKGogJiYgYVtpXVtqXSE9YVtpXVtqLTFdKSkgewoJCQkJc1tpXSA9IGFbaV1bal07CgkJCQlyZWMoaSsxKTsKCQkJfQoJCX0KCX0KfQoKaW50IG1haW4oKSB7CglhLnB1c2hfYmFjayh7J2EnLCdiJywnYSd9KTsKCWEucHVzaF9iYWNrKHsnYycsJ2MnfSk7CglhLnB1c2hfYmFjayh7J2QnLCdlJywnZScsJ2YnfSk7CgkKCW4gPSBhLnNpemUoKTsKCQoJZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCXNvcnQoYVtpXS5iZWdpbigpLCBhW2ldLmVuZCgpKTsKCQlzICs9ICIjIjsKCX0KCQoJcmVjKDApOwp9