#include <bits/stdc++.h>
#define ll long long int
#define ld long double
using namespace std;


void mainSolve()
{
  int n;
  string s;
  cin >> n >> s;
  int freq[30] = {0};
  for (auto ch : s)
    freq[ch - 'a']++;
  char ans[n + 1];
  set <int> c1, c2, c3;
  for (int i = 1; i <= n; i++)
  {
    if (i % 3 == 1)
      c1.insert(i);
    if (i % 3 == 2)
      c2.insert(i);
    if (i % 3 == 0)
      c3.insert(i);
  }
  vector <pair<int, char>> v;
  for (char ch = 'a'; ch <= 'z'; ch++)
    v.push_back({freq[ch - 'a'], ch});
  sort(v.begin(), v.end());
  reverse(v.begin(), v.end());
  int limit = (n + 2) / 3;
  int bad = 0;
  for (char ch = 'a'; ch <= 'z'; ch++)
  {
    if (freq[ch - 'a'] > limit)
    {
      cout << "NO\n";
      return;
    }
    if (freq[ch - 'a'] == limit)
      bad++;
  }
  int afford = n % 3;
  if (afford == 0)
    afford = 3;
  if (bad > afford)
  {
    cout << "NO\n";
    return;
  }
  cout << "YES\n";
  for (auto it : v)
  {
    if (it.first == limit)
    {
      if (c1.size() == limit)
      {
        while (c1.size() > 0)
        {
          auto it2 = c1.begin();
          ans[(*it2)] = it.second;
          c1.erase(it2);
        }
        continue;
      }
      if (c2.size() == limit)
      {
        while (c2.size() > 0)
        {

          auto it2 = c2.begin();
          ans[(*it2)] = it.second;
          c2.erase(it2);
        }
        continue;
      }
      if (c3.size() == limit)
      {
        while (c3.size() > 0)
        {
          auto it2 = c3.begin();
          ans[(*it2)] = it.second;
          c3.erase(it2);
        }
        continue;
      }
    }
    else
    {
      for (int i = 1; i <= it.first; i++)
      {
        if (c3.size() > 0)
        {
          auto it2 = c3.begin();
          ans[(*it2)] = it.second;
          c3.erase(it2);
          continue;
        }
        if (c2.size() > 0)
        {
          auto it2 = c2.begin();
          ans[(*it2)] = it.second;
          c2.erase(it2);
          continue;
        }
        if (c1.size() > 0)
        {
          auto it2 = c1.begin();
          ans[(*it2)] = it.second;
          c1.erase(it2);
          continue;
        }
      }
    }
  }
  for (int i = 1; i <= n; i++)
    cout << ans[i];
  cout << '\n';
}
int main()
{
#ifndef ONLINE_JUDGE
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
#endif
  int t;
  cin >> t;
  while (t--)
  {
    mainSolve();
  }
  return 0;
}