#include using namespace std; #include using namespace atcoder; using ll = long long; using vi = vector; using vvi = vector>; using pii = pair; #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define repr(i, n) for (int i = (int)(n - 1); i >= 0; --i) using mint = modint998244353; int main() { int n; string s; cin >> n >> s; vi a(n + 1, 0); rep(i, n) a[i + 1] = a[i] + (s[i] == '(' ? 1 : -1); vector dp(n + 1, 0); dp[0] = 1; rep(i, n) { for (int j = a[i] + 1; j < n; j++) dp[j] = 0; if (s[i] == '(') { repr(i, n) dp[i + 1] += dp[i]; } else { rep(i, n) dp[i] += dp[i + 1]; } } cout << dp[0].val() << endl; return 0; }