#include<bits/stdc++.h>
using namespace std;
const int N=1002;
char a[N];
int lk,rk,n;
long long cheng1=1,cheng2=1,cheng3=1;
int abss(int x,int y){
if(x>y) return x-y;
return y-x;
}
int main(){
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i];
if(a[i]=='(') ++lk;
if(a[i]==')') ++rk;
}
int chose=(n-lk-rk-abss(lk,rk))/2,num=n-lk-rk;
if(chose==0||num==0) cheng1=0;
for(int i=1;i<=num;++i){
cheng1=cheng1*i;
if(cheng1>=998244353) cheng1%=998244353;
}
for(int i=1;i<=chose;++i){
cheng2=cheng2*i;
if(cheng2>=998244353) cheng2%=998244353;
}
for(int i=1;i<=num-chose;++i){
cheng3=cheng2*i;
if(cheng3>=998244353) cheng3%=998244353;
}
cheng2=cheng2*cheng3%998244353;
cout<<cheng1/cheng2<<endl;
return 0;
}
subtask1 wa了第一 三个点 剩下的subtask全re 用的是组合数 从num个‘?’中取‘chose’个左/右括号