fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun findAns n items = let val itemTable = Array.array (11, 0) in ( List.app (fn (a, b, c) => ( Array.update (itemTable, a, Array.sub (itemTable, a) + 1); Array.update (itemTable, b, Array.sub (itemTable, b) + 1); Array.update (itemTable, c, Array.sub (itemTable, c) + 1) ) ) items; let val (bySame, remains) = Array.foldl (fn (n, (accSame, accRemains)) => (accSame + n div 2, accRemains + n mod 2)) (0, 0) itemTable in bySame + remains div 4 end ) end val () = let val n = readInt () val items = List.tabulate (n, fn _ => (readInt (), readInt (), readInt ())) val ans = findAns n items in print (Int.toString ans ^ "\n") end