#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
long long a[maxn];
int main() {
  int T;
  cin >> T;
  while (T--) {
    int visit['z' + 1] = {0}, flag = 0;
    set<char> S['z' + 1];
    string s, result, s0;
    cin >> s;
    int n = s.size();
    for (int i = 0; i < n; i++) {
      char c = s[i];
      if (i > 0) S[c].insert(s[i - 1]);
      if (i < n - 1) S[c].insert(s[i + 1]);
    }
    for (int i = 'a'; i <= 'z'; i++) {
      char c = i;
      int u = 0;
      if (S[c].size() == 0)
        s0 += c;
      else if (S[c].size() == 1 && visit[c] == 0) {
        visit[c] = 1;
        result += c;
        while (1) {
          set<char>::iterator it = S[c].begin();
          for (; it != S[c].end(); it++) {
            if (visit[*it] == 0) {
              visit[*it] = 1;
              c = *it;
              result += c;
              u++;
              break;
            } else if (visit[*it] == 1 && *it != result[u - 1]) {
              flag = 1;
              break;
            }
          }
          if (S[c].size() == 1) break;
          if (flag == 1) break;
        }
      } else if (S[c].size() > 2) {
        flag = 1;
      }
      if (flag == 1) break;
    }
    for (int i = 'a'; i <= 'z'; i++) {
      if (S[i].size() > 0 && visit[i] == 0) {
        flag = 1;
      }
    }
    if (flag == 1) {
      cout << "NO" << endl;
      continue;
    }
    cout << "YES" << endl << s0 + result << endl;
  }
  return 0;
}
