
小红有一个只包含 '(' 、')' 和 '?' 的字符串,小红想知道有多少种将 '?' 替换成 '(' 或 ')' 的方式使得存在一种循环移位、让该字符串为合法的括号串。

假设一个长度为

的字符串
![s[k:n] + s[1:k)](https://www.nowcoder.com/equation?tex=s%5Bk%3An%5D%20%2B%20s%5B1%3Ak))
是字符串

的循环移位,且
![s[k:n] + s[1:k)](https://www.nowcoder.com/equation?tex=s%5Bk%3An%5D%20%2B%20s%5B1%3Ak))
是一个合法的括号串,
那么字符串
符合题目要求。
输入描述:

第一行输入一个整数
)
代表字符串长度。

第二行输入一个长度为

,且只由
'(' 、')' 和 '?' 三种字符组成的字符串

。
输出描述:
在一行上输出一个整数,代表合法替换方式数量。由于答案可能很大,你需要输出答案对
取模的结果。
示例1
说明
其中一种替换方式为:()())())((,可以循环移位得到 ((()())()),是合法的括号串。