#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho
#define ll long long
#define double long double
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define aint(a) (a).begin(), (a).end()
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define INF 1000000005
#define LINF 1000000000000000005ll
#define CODE_START  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll t,bit[200005],n;
string s;
map<char,ll>viz;
void update(ll pos,ll val,ll mx){
    pos=mx-pos+1;
for(;pos<=mx;pos+=pos&(-pos)){
    bit[pos]+=val;
}
}
ll query(ll pos,ll mx){
ll s1=0;
ll x=pos-1;
pos=mx-pos+1;
ll s2=0;
for(;pos;pos-=pos&(-pos)){
    s1+=bit[pos];
}
return s1;
}
int32_t main(){
CODE_START;
cin>>t;
while(t--){
    cin>>s;
    n=s.size();
    vector<char>v;
    viz.clear();
        string res=s;
    s=' '+s;
    for(ll i=1;i<s.size();i++)
    {
        viz[s[i]]++;
    }
    v.pb('A');
    v.pb('N');
    v.pb('O');
    v.pb('T');
    ll ans=0;
    do{
string x;
for(ll i=0;i<v.size();i++)
{
    for(ll j=0;j<viz[v[i]];j++)
    {
        x+=v[i];
    }
}
ll cnt=0;
for(ll i=0;i<=s.size();i++)
{
    bit[i]=0;
}
multiset<ll>ss[26];
for(ll i=0;i<x.size();i++)
{
    ss[x[i]-'A'].insert(i+1);
}
for(ll i=1;i<=n;i++)
{
ll pos=*(ss[s[i]-'A']).begin();
ss[s[i]-'A'].erase(ss[s[i]-'A'].begin());
ll s1=query(pos,n);
cnt+=(pos+s1-i);
update(pos,1ll,n);
}
if(cnt>ans){
    ans=cnt;
    res=x;
}
    }while(next_permutation(v.begin(),v.end()));
    cout<<res<<endl;
}
}

