fun readStr () = let fun scan reader stream = SOME (StringCvt.splitl (not o Char.isSpace) reader (StringCvt.skipWS reader stream)) in valOf (TextIO.scanStream scan TextIO.stdIn) end fun countPieces board = let val grid = List.foldl (fn (s, acc) => String.explode s @ acc) [] board val black = List.foldl (fn (ch, acc) => if ch = #"b" then acc + 1 else acc) 0 grid val white = List.foldl (fn (ch, acc) => if ch = #"w" then acc + 1 else acc) 0 grid in (black, white) end fun findAns sente black white = let val gote = if sente = "oda" then "yukiko" else "oda" in if (black + white) mod 2 = 0 then sente else gote end val () = let val s = readStr () val board = List.tabulate (8, fn _ => readStr ()) val (b, w) = countPieces board val ans = findAns s b w in print (ans ^ "\n") end