#include <bits/stdc++.h>
using namespace std;
int32_t main() {
  long long tc;
  cin >> tc;
  while (tc--) {
    bool bf = false;
    string s;
    cin >> s;
    list<char> lt;
    unordered_map<char, bool> visited;
    list<char>::iterator itr = lt.begin();
    long long sitr = 0;
    for (auto y : s) {
      if (lt.size() == 0) {
        visited[y] = 1;
        lt.push_back(y);
        sitr++;
        itr = lt.begin();
        continue;
      }
      if (visited[y] == 0) {
        visited[y] = 1;
        if (itr == lt.begin()) {
          lt.push_front(y);
          itr = lt.begin();
          sitr = 1;
        } else if (sitr == lt.size()) {
          lt.push_back(y);
          ++itr;
          sitr++;
        } else {
          cout << "NO" << endl;
          bf = true;
          break;
        }
      } else {
        if ((*itr) == y) continue;
        list<char>::iterator back = itr;
        list<char>::iterator forw = itr;
        if (sitr == 1) {
          ++forw;
          if ((*forw) != y) {
            cout << "NO" << endl;
            bf = true;
            break;
          }
          itr = forw;
          sitr++;
        } else if (sitr == lt.size()) {
          --back;
          if ((*back) != y) {
            cout << "NO" << endl;
            bf = true;
            break;
          }
          itr = back;
          sitr--;
        } else {
          --back;
          ++forw;
          if (((*back) != y && *forw != y)) {
            cout << "NO" << endl;
            bf = true;
            break;
          } else {
            if ((*back) == y) {
              itr = back;
              sitr--;
            } else {
              itr = forw;
              sitr++;
            }
          }
        }
      }
    }
    if (bf == false) {
      cout << "YES" << endl;
      string str = "abcdefghijklmnopqrstuvwxyz";
      for (auto node : lt) cout << node;
      for (auto c : str) {
        if (visited[c] == 0) cout << c;
      }
      cout << endl;
    }
  }
}
