fun member x nil = false | member x (h::tl) = if x = h then true else member x tl fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) 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 findAns k s = let fun makePairs _ [] _ = [] | makePairs i (h::tl) stack = if h = #"(" then makePairs (i + 1) tl (i :: stack) else (* #")" *) [List.hd stack, i] :: makePairs (i + 1) tl (List.tl stack) val pairs = makePairs 1 (String.explode s) [] val included = valOf (List.find (fn pair => member k pair) pairs) in if List.hd included = k then List.nth (included, 1) else List.nth (included, 0) end val () = let val n = readInt () val k = readInt () val s = readStr () val ans = findAns k s in print (Int.toString ans ^ "\n") end