#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > v;
vector<bool> vis;
string ans = "";
void dfs(int temp) {
  ans += temp + 'a';
  for (auto it = v[temp].begin(); it != v[temp].end(); ++it) {
    if (!vis[*it]) {
      vis[*it] = true;
      dfs(*it);
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  int t;
  cin >> t;
  while (t--) {
    string s;
    cin >> s;
    v.resize(26);
    vis.resize(26);
    set<pair<char, char> > sc;
    for (int i = 0; i < s.size() - 1; i += 1) {
      pair<int, int> cc = {min(s[i], s[i + 1]), max(s[i], s[i + 1])};
      if (sc.find(cc) == sc.end()) {
        sc.insert(cc);
        v[s[i] - 'a'].emplace_back(s[i + 1] - 'a');
        v[s[i + 1] - 'a'].emplace_back(s[i] - 'a');
      }
    }
    int cnt = 0, temp = 0;
    for (int i = 0; i < 26; i += 1) {
      if (v[i].size() == 1) {
        temp = i;
        cnt++;
      } else if (v[i].size() > 2) {
        cnt = -1;
        break;
      }
    }
    if (cnt != 2 && s.size() != 1)
      cout << "NO\n";
    else {
      cout << "YES\n";
      vis[temp] = true;
      dfs(temp);
      for (int i = 0; i < 26; i += 1) {
        if (!vis[i]) ans += i + 'a';
      }
      cout << ans << '\n';
    }
    ans = "";
    vis.clear();
    for (int i = 0; i < 26; i += 1) v[i].clear();
    v.clear();
  }
}
