愤怒
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小w很生气
小w有一个长为n的括号序列
愤怒小w想把这个括号序列分为两个括号序列
小w想让分为的这两个括号序列同时合法
小w想知道一共有多少种划分方案
(划分的意思是划分为两个子序列)
注意两个序列是 A,B 和 两个序列是B,A 算两种方案,也就是同一位置位于不同划分为方案不同

输入描述:

第一行一正整数n
第二行,一串长为n的括号序列

输出描述:

一个正整数
表示对方案数对2333取mod后的方案数
示例1

输入

复制
4
(())

输出

复制
6
示例2

输入

复制
8
()()()()

输出

复制
16

备注:

n ≤ 10000