import Control.Monad import Data.List import Data.Tuple import Debug.Trace oddLine :: (Ord a) => [a] -> [a] oddLine [] = [] oddLine (x:[]) = [x] oddLine (x:xs) = x : (oddLine $ tail xs) evenLine :: (Ord a) => [a] -> [a] evenLine [] = [] evenLine (_:[]) = [] evenLine (_:[x]) = [x] evenLine (_:x:xs) = x : (evenLine xs) searchKadomatsu _ [] = 0 searchKadomatsu _ (a:[]) = 0 searchKadomatsu _ (a:b:[]) = 0 searchKadomatsu n (a:b:c:l) | n < 3 = 0 | otherwise = 1 + searchKadomatsu (n-3) l' where abc = filter (>0) [a - 1, b - 1, c - 1] l' | length abc == 0 = l | otherwise = reverse $ sort (abc ++ l) kadomatsu _ [] _ = [] kadomatsu _ _ [] = [] kadomatsu 0 _ _ = [] kadomatsu t (n:ns) (l:ls) = searchKadomatsu n l : kadomatsu (t-1) ns ls kadomatsuList [] = [] kadomatsuList ls = c : kadomatsuList ls' where c = length $ filter (== head ls) ls ls' = drop c ls main = do t <- readLn str <- replicateM (t * 2) getLine let xs = map (map read . words) str :: [[Int]] n = [x !! 0 | x <- oddLine xs] l = [sort x | x <- evenLine xs] l' = map (reverse . sort . kadomatsuList) l mapM_ print $ kadomatsu t n l'