#include <algorithm>
#include <cstdio>
#include <functional>
#include <iostream>
#include <cfloat>
#include <climits>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <time.h>
#include <complex>
#include <vector>
#include <limits>
#include <iomanip>
#include <cassert>
#include <numeric>
#include <chrono>
#include <random>

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

#define debug(x) cerr << #x << " = " << (x) << endl;
#define debug_pii(x) cerr << "(" << x.first << "," << x.second << ")";
#define rep(i, n) for(int i = 0;i < n;i++)
#define pb push_back
#define F first
#define S second

// template<typename _Ty1, typename _Ty2>
// ostream& operator<<(ostream& _os, const pair<_Ty1, _Ty2>& _p) {
//     _os << '(' <<_p.first << ',' << _p.second << ')';
//     return _os;
// }
//
// template<typename _Ty1, typename _Ty2>
// istream& operator>>(istream& _is, pair<_Ty1, _Ty2>& _p) {
//     _is >> _p.first >> _p.second;
//     return _is;
// }

bool valid(string t) {
  int c = 0;
  for(char ch:t) {
    if(ch == '(') c++;
    else c--;
    if(c < 0) return false;
  }
  return c == 0;
}

void solve() {
  string s;cin>>s;
  string oc = "()";
  bool pos = false;
  rep(i,2){
    rep(j,2){
      rep(k,2){
        string t;
        rep(l,s.size()){
          if(s[l] == 'A') t.pb(oc[i]);
          if(s[l] == 'B') t.pb(oc[j]);
          if(s[l] == 'C') t.pb(oc[k]);
        }
        pos |= valid(t);
      }
    }
  }

  cout << (pos?"YES":"NO")<<endl;
}



int main() {

 // freopen("input.in","r",stdin);
 // freopen("output.out","w",stdout);
 // cout << fixed << setprecision(15);

 ios_base::sync_with_stdio(false);
 cin.tie(nullptr);
 int t = 1;
 cin >> t;
 while (t--) {
   solve();
 }

 return 0;
}
