← Home
```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	t := 0
	fmt.Sscanf(scanner.Text(), "%d", &t)

	for i := 0; i < t; i++ {
		scanner.Scan()
		a := scanner.Text()
		found := false

		for mask := 0; mask < 8; mask++ {
			bA, bB, bC := ')', ')', ')'
			if mask&1 != 0 {
				bA = '('
			}
			if mask&2 != 0 {
				bB = '('
			}
			if mask&4 != 0 {
				bC = '('
			}

			balance := 0
			valid := true
			for j := 0; j < len(a); j++ {
				var ch rune
				switch a[j] {
				case 'A':
					ch = bA
				case 'B':
					ch = bB
				case 'C':
					ch = bC
				}

				if ch == '(' {
					balance++
				} else {
					balance--
				}

				if balance < 0 {
					valid = false
					break
				}
			}

			if valid && balance == 0 {
				found = true
				break
			}
		}

		if found {
			fmt.Println("YES")
		} else {
			fmt.Println("NO")
		}
	}
}
```