Problem5791--括号匹配

5791: 括号匹配

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

众所周知,任何一个现代编辑器都有括号匹配功能。当你编辑代码的时候,把光标移到一个括号上,编辑器就会提示你与之对应的括号。小 F 想研究这个功能的原理。
为了简化问题,小 F 打算只研究代码中的大括号。去掉其它字符后,代码中只有 $\{$(左大括号)和 $\}$(右大括号)两种字符,总长度为 。
括号匹配的规则是:
  1.  $\{\}$ 是最简单的括号序列,其左右括号互相匹配;
  2. 如果 $S$ 是一个括号序列,那么 $\{S\}$ 也是一个括号序列,其左边的左括号和右边的右括号互相匹配;
  3. 如果 $A,\ B$ 都是一个括号序列,那么 $AB$(将 $A$ 和 $B$ 直接拼接)也是一个括号序列。
小 F 现在打开了这份简化后的代码,他的光标正指向第 $p$  个字符(从 $1$ 开始)。小 F 希望知道与这个字符相匹配的括号是第几个字符。
小 F 研究了三天三夜,还没研究出来。无奈之下,他请你给他写一个程序,完成这个功能。

Input

第一行两个整数 $n\ (1 \leq n \leq 10^5),\ p\ (1 \leq p \leq n)$,表示程序的长度和光标的位置。
第二行一个字符串 $s\ (|s|=n,\ s_i \in \{\{,\ \}\}$,表示小 F 的程序。

Output

一行一个正整数,表示与之匹配的光标的位置。

Sample 1 Input

4 3
{{}}

Sample 1 Output

2

Sample 2 Input

8 4
{{}{{}}}

Sample 2 Output

7

Source/Category

数据结构 2.2.栈