#include <bits/stdc++.h>
using namespace std;
constexpr double EPS = 1e-9;
constexpr double PI = 3.1415926535897932;
constexpr int INF = 2147483647;
constexpr long long LINF = 1LL << 60;
constexpr long long MOD = 1000000007;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
void Main() {
  string s;
  cin >> s;
  int n = s.size();
  int e[26][26];
  for (int i = (0); i < (26); ++i)
    for (int j = (0); j < (26); ++j) e[i][j] = 0;
  for (int i = (0); i < (n - 1); ++i) {
    int x = s[i] - 'a', y = s[i + 1] - 'a';
    e[x][y] = e[y][x] = 1;
  }
  vector<int> deg(26, 0);
  for (int i = (0); i < (26); ++i) {
    for (int j = (0); j < (26); ++j) deg[i] += e[i][j];
    if (deg[i] > 2) {
      cout << "NO"
           << "\n";
      return;
    }
  }
  vector<bool> used(26, false);
  string ans = "";
  for (int i = (0); i < (26); ++i) {
    if (used[i]) continue;
    if (deg[i] == 2)
      continue;
    else if (deg[i] == 0) {
      ans += i + 'a';
      used[i] = true;
    } else if (deg[i] == 1) {
      int now = i;
      while (1) {
        used[now] = true;
        ans += now + 'a';
        bool flag = true;
        for (int j = (0); j < (26); ++j) {
          if (e[now][j] == 0 || used[j]) continue;
          now = j;
          flag = false;
          break;
        }
        if (flag) break;
      }
    }
  }
  if ((int)ans.size() < 26) {
    cout << "NO"
         << "\n";
    return;
  }
  cout << "YES"
       << "\n"
       << ans << "\n";
  return;
}
int main(void) {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(0);
  cout << fixed << setprecision(15);
  int t = 1;
  cin >> t;
  for (int _ = (0); _ < (t); ++_) Main();
  return 0;
}
