#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int t;
  cin >> t;
  for (long long int duh = 0; duh < t; duh++) {
    string s;
    deque<char> dq;
    cin >> s;
    long long int n = s.length();
    bool poss = true;
    vector<long long int> adj[26];
    long long int asc[256] = {0};
    for (long long int i = 0; i < n; i++) asc[s[i]]++;
    long long int flag[256] = {0};
    flag[s[0]] = 1;
    dq.push_back(s[0]);
    for (long long int i = 1; i < n; i++) {
      if (flag[s[i]] == 0) {
        long long int fro = dq.front();
        long long int bac = dq.back();
        if (fro == s[i - 1]) {
          flag[s[i]] = 1;
          dq.push_front(s[i]);
          adj[s[i] - 'a'].push_back(s[i - 1]);
          adj[s[i - 1] - 'a'].push_back(s[i]);
        } else if (bac == s[i - 1]) {
          flag[s[i]] = 1;
          dq.push_back(s[i]);
          adj[s[i] - 'a'].push_back(s[i - 1]);
          adj[s[i - 1] - 'a'].push_back(s[i]);
        } else
          poss = false;
      } else {
        bool pres = false;
        for (long long int j = 0; j < adj[s[i] - 'a'].size(); j++) {
          if (adj[s[i] - 'a'][j] == s[i - 1]) pres = true;
        }
        if (!pres) poss = false;
      }
    }
    if (!poss)
      cout << "NO" << endl;
    else {
      for (long long int i = 97; i < 123; i++)
        if (flag[i] == 0) dq.push_back(char(i));
      cout << "YES" << endl;
      while (!dq.empty()) {
        cout << dq.front();
        dq.pop_front();
      }
      cout << endl;
    }
  }
  return 0;
}
