#include <iostream>
#include <sstream>
#include <set>
#include <algorithm>
#include <cctype>
#include <iomanip>
#include <vector>
#include <map>
#include <queue>
#include <numeric>
#include <string>
#include <cmath>
#include <climits>
#include <stack>
#include <complex>
using namespace std;
const int MOD = 7;
long invmod (long a,long m)
{
if (m==0) return 1;
if (m%2)
{
long res = (invmod (a,(m-1)/2))%MOD ;
return (a*res*res)%MOD;
}
else
{
long res=invmod(a,m/2)%MOD;
return res*res%MOD;
}
}
long countdiv (long a)
{
long ans=0;
long b=floor(sqrt(a));
for (long i=1;i<=b;i++)
{
if ((a%i)==0) ans++;
}
ans*=2;
if (b==sqrt(a)) ans--;
return ans;
}
long gcd(long long a,long long b)
{
if (a==0) return b;
return gcd(b%a,a);
}
vector<long long> getDivisors(long long n) {
vector<long long> divisors;
for (long long i = 1; i * i <= n; ++i) {
if (n % i == 0) {
divisors.push_back(i);
if (i != n / i) {
divisors.push_back(n / i);
}
}
}
return divisors;
}
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
string s;
cin >> s;
map<char, int> mp;
map<char, vector<int>> mp1;
mp['N'] = 0;
mp['W'] = 0;
mp['S'] = 0;
mp['E'] = 0;
for (int i = 0; i < n; i++) {
mp[s[i]]++;
mp1[s[i]].push_back(i);
}
if ((mp['N'] + mp['S']) % 2 != 0 || (mp['W'] + mp['E']) % 2 != 0) {
cout << "NO\n";
} else {
vector<char> ans(n, ' ');
vector<int> r, h;
if (mp['S'] % 2 != 0) {
mp['S']--;
mp['N']--;
r.push_back(mp1['S'].back());
r.push_back(mp1['N'].back());
mp1['S'].pop_back();
mp1['N'].pop_back();
}
if (mp['E'] % 2 != 0) {
mp['W']--;
mp['E']--;
h.push_back(mp1['E'].back());
h.push_back(mp1['W'].back());
mp1['E'].pop_back();
mp1['W'].pop_back();
}
while (mp['W'] > 0) {
if (mp['W'] % 2 != 0) r.push_back(mp1['W'].back());
else h.push_back(mp1['W'].back());
mp1['W'].pop_back();
mp['W']--;
}
while (mp['E'] > 0) {
if (mp['E'] % 2 != 0) r.push_back(mp1['E'].back());
else h.push_back(mp1['E'].back());
mp1['E'].pop_back();
mp['E']--;
}
while (mp['N'] > 0) {
if (mp['N'] % 2 != 0) r.push_back(mp1['N'].back());
else h.push_back(mp1['N'].back());
mp1['N'].pop_back();
mp['N']--;
}
while (mp['S'] > 0) {
if (mp['S'] % 2 != 0) r.push_back(mp1['S'].back());
else h.push_back(mp1['S'].back());
mp1['S'].pop_back();
mp['S']--;
}
for (auto it : r) {
ans[it] = 'R';
}
for (auto it : h) {
ans[it] = 'H';
}
if (r.empty() || h.empty()) {
cout << "NO\n";
} else {
for (int i = 0; i < n; i++) {
cout << ans[i];
}
cout << '\n';
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNjdHlwZT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPGNvbXBsZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTU9EID0gNzsKCmxvbmcgaW52bW9kIChsb25nIGEsbG9uZyBtKQp7CiAgICBpZiAobT09MCkgcmV0dXJuIDE7CiAgICBpZiAobSUyKQogICAgewogICAgICAgIGxvbmcgcmVzID0gKGludm1vZCAoYSwobS0xKS8yKSklTU9EIDsKICAgICAgICByZXR1cm4gKGEqcmVzKnJlcyklTU9EOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGxvbmcgcmVzPWludm1vZChhLG0vMiklTU9EOwogICAgICAgIHJldHVybiByZXMqcmVzJU1PRDsKICAgIH0KfQoKbG9uZyBjb3VudGRpdiAobG9uZyBhKQp7CiAgICBsb25nIGFucz0wOwogICAgbG9uZyBiPWZsb29yKHNxcnQoYSkpOwogICAgZm9yIChsb25nIGk9MTtpPD1iO2krKykKICAgIHsKICAgICAgICBpZiAoKGElaSk9PTApICBhbnMrKzsKICAgIH0KICAgIGFucyo9MjsKICAgIGlmIChiPT1zcXJ0KGEpKSBhbnMtLTsKICAgIHJldHVybiBhbnM7Cn0KCmxvbmcgZ2NkKGxvbmcgbG9uZyBhLGxvbmcgbG9uZyBiKQp7CiAgICBpZiAoYT09MCkgcmV0dXJuIGI7CiAgICByZXR1cm4gZ2NkKGIlYSxhKTsKfQoKCnZlY3Rvcjxsb25nIGxvbmc+IGdldERpdmlzb3JzKGxvbmcgbG9uZyBuKSB7CiAgICB2ZWN0b3I8bG9uZyBsb25nPiBkaXZpc29yczsKICAgIGZvciAobG9uZyBsb25nIGkgPSAxOyBpICogaSA8PSBuOyArK2kpIHsKICAgICAgICBpZiAobiAlIGkgPT0gMCkgewogICAgICAgICAgICBkaXZpc29ycy5wdXNoX2JhY2soaSk7CiAgICAgICAgICAgIGlmIChpICE9IG4gLyBpKSB7CiAgICAgICAgICAgICAgICBkaXZpc29ycy5wdXNoX2JhY2sobiAvIGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGRpdmlzb3JzOwp9CgoKCgppbnQgbWFpbigpIHsKICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47CiAgICAgICAgc3RyaW5nIHM7CiAgICAgICAgY2luID4+IHM7CiAgICAgICAgbWFwPGNoYXIsIGludD4gbXA7CiAgICAgICAgbWFwPGNoYXIsIHZlY3RvcjxpbnQ+PiBtcDE7CiAgICAgICAgbXBbJ04nXSA9IDA7CiAgICAgICAgbXBbJ1cnXSA9IDA7CiAgICAgICAgbXBbJ1MnXSA9IDA7CiAgICAgICAgbXBbJ0UnXSA9IDA7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIG1wW3NbaV1dKys7CiAgICAgICAgICAgIG1wMVtzW2ldXS5wdXNoX2JhY2soaSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoKG1wWydOJ10gKyBtcFsnUyddKSAlIDIgIT0gMCB8fCAobXBbJ1cnXSArIG1wWydFJ10pICUgMiAhPSAwKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk5PXG4iOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZlY3RvcjxjaGFyPiBhbnMobiwgJyAnKTsKICAgICAgICAgICAgdmVjdG9yPGludD4gciwgaDsKCiAgICAgICAgICAgIGlmIChtcFsnUyddICUgMiAhPSAwKSB7CiAgICAgICAgICAgICAgICBtcFsnUyddLS07CiAgICAgICAgICAgICAgICBtcFsnTiddLS07CiAgICAgICAgICAgICAgICByLnB1c2hfYmFjayhtcDFbJ1MnXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgci5wdXNoX2JhY2sobXAxWydOJ10uYmFjaygpKTsKICAgICAgICAgICAgICAgIG1wMVsnUyddLnBvcF9iYWNrKCk7CiAgICAgICAgICAgICAgICBtcDFbJ04nXS5wb3BfYmFjaygpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChtcFsnRSddICUgMiAhPSAwKSB7CiAgICAgICAgICAgICAgICBtcFsnVyddLS07CiAgICAgICAgICAgICAgICBtcFsnRSddLS07CiAgICAgICAgICAgICAgICBoLnB1c2hfYmFjayhtcDFbJ0UnXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgaC5wdXNoX2JhY2sobXAxWydXJ10uYmFjaygpKTsKICAgICAgICAgICAgICAgIG1wMVsnRSddLnBvcF9iYWNrKCk7CiAgICAgICAgICAgICAgICBtcDFbJ1cnXS5wb3BfYmFjaygpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB3aGlsZSAobXBbJ1cnXSA+IDApIHsKICAgICAgICAgICAgICAgIGlmIChtcFsnVyddICUgMiAhPSAwKSByLnB1c2hfYmFjayhtcDFbJ1cnXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgZWxzZSBoLnB1c2hfYmFjayhtcDFbJ1cnXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgbXAxWydXJ10ucG9wX2JhY2soKTsKICAgICAgICAgICAgICAgIG1wWydXJ10tLTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aGlsZSAobXBbJ0UnXSA+IDApIHsKICAgICAgICAgICAgICAgIGlmIChtcFsnRSddICUgMiAhPSAwKSByLnB1c2hfYmFjayhtcDFbJ0UnXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgZWxzZSBoLnB1c2hfYmFjayhtcDFbJ0UnXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgbXAxWydFJ10ucG9wX2JhY2soKTsKICAgICAgICAgICAgICAgIG1wWydFJ10tLTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aGlsZSAobXBbJ04nXSA+IDApIHsKICAgICAgICAgICAgICAgIGlmIChtcFsnTiddICUgMiAhPSAwKSByLnB1c2hfYmFjayhtcDFbJ04nXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgZWxzZSBoLnB1c2hfYmFjayhtcDFbJ04nXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgbXAxWydOJ10ucG9wX2JhY2soKTsKICAgICAgICAgICAgICAgIG1wWydOJ10tLTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aGlsZSAobXBbJ1MnXSA+IDApIHsKICAgICAgICAgICAgICAgIGlmIChtcFsnUyddICUgMiAhPSAwKSByLnB1c2hfYmFjayhtcDFbJ1MnXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgZWxzZSBoLnB1c2hfYmFjayhtcDFbJ1MnXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgbXAxWydTJ10ucG9wX2JhY2soKTsKICAgICAgICAgICAgICAgIG1wWydTJ10tLTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChhdXRvIGl0IDogcikgewogICAgICAgICAgICAgICAgYW5zW2l0XSA9ICdSJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKGF1dG8gaXQgOiBoKSB7CiAgICAgICAgICAgICAgICBhbnNbaXRdID0gJ0gnOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoci5lbXB0eSgpIHx8IGguZW1wdHkoKSkgewogICAgICAgICAgICAgICAgY291dCA8PCAiTk9cbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgYW5zW2ldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY291dCA8PCAnXG4nOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9CgoKCg==