#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
char x[100]; // Stores the current permutation
int n;
char c;
string input; // Contains sorted letters from 'A' to c
bool chuaxet[100]; // Tracks which characters are used
void Init() {
cin >> c;
input.resize(c - 'A' + 1);
for (int i = 0; i <= c - 'A'; i++) {
input[i] = 'A' + i;
}
sort(input.begin(), input.end());
fill(chuaxet, chuaxet + input.size(), true);
}
// Checks if the current permutation (x) is valid
bool isValidPermutation(int len) {
for (int i = 0; i < len - 1; i++) {
if ((x[i] == 'A' && x[i + 1] == 'E') ||
(x[i] == 'E' && x[i + 1] == 'A')) {
return false;
}
}
return true;
}
void backtrack(int i) {
if (i == input.size()) {
// Print the permutation if valid
if (isValidPermutation(i)) {
for (int k = 0; k < i; k++) cout << x[k];
cout << endl;
}
return;
}
for (int j = 0; j < input.size(); j++) {
if (chuaxet[j]) {
x[i] = input[j]; // Choose input[j] for position i
chuaxet[j] = false; // Mark as used
backtrack(i + 1); // Recurse
chuaxet[j] = true; // Backtrack (unmark)
}
}
}
int main() {
Init();
backtrack(0);
return 0;
}