#include <bits/stdc++.h>
using namespace std;
void dfs(set<int> adj[], int p, int c, int visited[], bool &flg,
         vector<int> &ths) {
  visited[c] = 1;
  if (adj[c].size() > 2) {
    flg = false;
  }
  ths.push_back(c);
  for (auto u : adj[c]) {
    if (u != p) {
      if (visited[u]) {
        flg = false;
        return;
      }
      dfs(adj, c, u, visited, flg, ths);
    }
  }
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int t;
  cin >> t;
  while (t--) {
    string s;
    cin >> s;
    int n = (int)s.size();
    set<int> adj[26];
    int visited[26];
    for (int i = 0; i < 26; i++) {
      visited[i] = 0;
    }
    for (int i = 0; i < n - 1; i++) {
      adj[s[i] - 'a'].insert(s[i + 1] - 'a');
      adj[s[i + 1] - 'a'].insert(s[i] - 'a');
    }
    vector<int> v;
    for (int i = 0; i < 26; i++) {
      if ((int)adj[i].size() < 2) {
        v.push_back(i);
      }
    }
    for (int i = 0; i < 26; i++) {
      if ((int)adj[i].size() >= 2) {
        v.push_back(i);
      }
    }
    bool flg = true;
    string res = "";
    for (auto ele : v) {
      if (!visited[ele]) {
        if (adj[ele].size() >= 2) {
          flg = false;
        }
        vector<int> ths;
        dfs(adj, -1, ele, visited, flg, ths);
        for (auto ele : ths) {
          res += (char)('a' + ele);
        }
      }
    }
    if (flg) {
      cout << "YES\n";
      cout << res << "\n";
    } else {
      cout << "NO\n";
    }
  }
  return 0;
}
