#3484. [Baltic2012]brackets

内存限制:64 MiB 时间限制:30 Sec

题目描述

我们把一种由[、]、(、)组成的序列成为合法的:

单独的“()”和“[]”是合法的。

如果A和B是合法的,那么AB也是合法的。

如果A是合法的,那么(A)和[A]也是合法的。

有一个序列A,他的所有的“[”和“]”都被替换成了“(”,这样形成了序列B,现在已知序列B,求有多少种可能的序列A,答案mod 10^9+9。

输入格式

第一行一个数N ,2≤N≤30000

接下来一个字符串,由"("和")"组成,长度为N.

输出格式

样例

样例输入


			
4
((()

样例输出


			
2

数据范围与提示

对于样例有如下两种:


[](), ([])