fun tally (nt, nr, ne) = if TextIO.endOfStream TextIO.stdIn then (nt, nr, ne) else case TextIO.input1 TextIO.stdIn of SOME c => if c = #"t" then tally (nt + 1, nr, ne) else if c = #"r" then tally (nt, nr + 1, ne) else if c = #"e" then tally (nt, nr, ne + 1) else tally (nt, nr, ne) | NONE => (nt, nr, ne) val () = let val (numOfT, numOfR, numOfE) = tally (0, 0, 0) val ans = Int.min (numOfT, Int.min (numOfR, numOfE div 2)) in print (Int.toString ans ^ "\n") end