#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <map> // Or an array for character counts
// Using namespace std; // As requested by the user
void solve() {
std::string s;
std::cin >> s;
std::map<char, int> counts;
for (char c : s) {
counts[c]++;
}
std::string result = "";
// Append all 'T's
if (counts.count('T')) {
for (int i = 0; i < counts['T']; ++i) {
result += 'T';
}
counts.erase('T');
}
// Append all 'F's
if (counts.count('F')) {
for (int i = 0; i < counts['F']; ++i) {
result += 'F';
}
counts.erase('F');
}
// Append all 'N's
if (counts.count('N')) {
for (int i = 0; i < counts['N']; ++i) {
result += 'N';
}
counts.erase('N');
}
// Append remaining characters in alphabetical order
for (auto const& [key, val] : counts) {
for (int i = 0; i < val; ++i) {
result += key;
}
}
std::cout << result << std::endl;
}
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
int t;
std::cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPiAvLyBPciBhbiBhcnJheSBmb3IgY2hhcmFjdGVyIGNvdW50cwoKLy8gVXNpbmcgbmFtZXNwYWNlIHN0ZDsgLy8gQXMgcmVxdWVzdGVkIGJ5IHRoZSB1c2VyCgp2b2lkIHNvbHZlKCkgewogICAgc3RkOjpzdHJpbmcgczsKICAgIHN0ZDo6Y2luID4+IHM7CgogICAgc3RkOjptYXA8Y2hhciwgaW50PiBjb3VudHM7CiAgICBmb3IgKGNoYXIgYyA6IHMpIHsKICAgICAgICBjb3VudHNbY10rKzsKICAgIH0KCiAgICBzdGQ6OnN0cmluZyByZXN1bHQgPSAiIjsKCiAgICAvLyBBcHBlbmQgYWxsICdUJ3MKICAgIGlmIChjb3VudHMuY291bnQoJ1QnKSkgewogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRzWydUJ107ICsraSkgewogICAgICAgICAgICByZXN1bHQgKz0gJ1QnOwogICAgICAgIH0KICAgICAgICBjb3VudHMuZXJhc2UoJ1QnKTsKICAgIH0KCiAgICAvLyBBcHBlbmQgYWxsICdGJ3MKICAgIGlmIChjb3VudHMuY291bnQoJ0YnKSkgewogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRzWydGJ107ICsraSkgewogICAgICAgICAgICByZXN1bHQgKz0gJ0YnOwogICAgICAgIH0KICAgICAgICBjb3VudHMuZXJhc2UoJ0YnKTsKICAgIH0KCiAgICAvLyBBcHBlbmQgYWxsICdOJ3MKICAgIGlmIChjb3VudHMuY291bnQoJ04nKSkgewogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRzWydOJ107ICsraSkgewogICAgICAgICAgICByZXN1bHQgKz0gJ04nOwogICAgICAgIH0KICAgICAgICBjb3VudHMuZXJhc2UoJ04nKTsKICAgIH0KCiAgICAvLyBBcHBlbmQgcmVtYWluaW5nIGNoYXJhY3RlcnMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyCiAgICBmb3IgKGF1dG8gY29uc3QmIFtrZXksIHZhbF0gOiBjb3VudHMpIHsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbDsgKytpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBrZXk7CiAgICAgICAgfQogICAgfQoKICAgIHN0ZDo6Y291dCA8PCByZXN1bHQgPDwgc3RkOjplbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIHN0ZDo6aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBzdGQ6OmNpbi50aWUoTlVMTCk7CiAgICBpbnQgdDsKICAgIHN0ZDo6Y2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KICAgIHJldHVybiAwOwp9