#include <bits/stdc++.h>
using namespace std;
inline int read() {
  char ch = getchar();
  int x = 0, f = 1;
  while (ch < '0' || ch > '9') f = ch == '-' ? -1 : 1, ch = getchar();
  while (ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar();
  return x * f;
}
const int MAXN = 210, MAXC = 30;
char s[MAXN];
int n;
vector<char> res;
bool used[MAXC];
bool solve() {
  res.clear();
  memset(used, 0, sizeof(used));
  res.push_back(s[1]);
  used[s[1] - 'a'] = true;
  int p = 0, end = 0;
  for (int i = (2); i <= (n); i += (1)) {
    if (s[i] == s[i - 1]) continue;
    if (p != 0 && s[i] == res[p - 1])
      p--;
    else if (p != end && s[i] == res[p + 1])
      p++;
    else if (p == end && !used[s[i] - 'a'])
      res.push_back(s[i]), end++, p++, used[s[i] - 'a'] = true;
    else if (p == 0 && !used[s[i] - 'a'])
      res.insert(res.begin(), s[i]), end++, used[s[i] - 'a'] = true;
    else
      return false;
  }
  for (int i = (0); i <= (25); i += (1))
    if (!used[i]) res.push_back('a' + i);
  return true;
}
int main(int argc, char *argv[]) {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int t = read();
  for (int _ = (1); _ <= (t); _ += (1)) {
    scanf("%s", s + 1);
    n = strlen(s + 1);
    bool ok = solve();
    puts(ok ? "YES" : "NO");
    if (ok) {
      for (auto c : res) putchar(c);
      putchar('\n');
    }
  }
  return 0;
}
