import Control.Applicative ((<$>)) import Control.Monad (replicateM) import Data.ByteString.Char8 (ByteString) import qualified Data.ByteString.Char8 as B import Data.List main :: IO () main = do n <- readLn solve n <$> replicateM n B.getLine >>= putStrLn solve :: Int -> [ByteString] -> String solve n ss = f 0 ls where ls = map length . group . sort $ ss f mx xs | null xs && mx == 0 = "YES" | null xs = "NO" | mx == 0 = f (m - 1) rs | otherwise = f (m - 1) (mx : rs) where m = maximum xs rs = delete m xs