#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) typedef vector VI; typedef vector VVI; typedef vector VL; typedef vector VVL; typedef long long LL; #define all(a) (a).begin(), (a).end() #define Yes(n) cout << ((n) ? "Yes" : "No" ) << endl #define ALL(a) (a).begin(),(a).end() #define pb push_back #include using mint = atcoder::modint998244353; mint fac[1000000]; mint inv[1000000]; mint f(int n,int a){ return fac[n]/(fac[a]*fac[n-a]); } int main() { fac[0]=1; rep(i,1000000){ fac[i+1]=fac[i]*(i+1); } inv[1000000-1]=fac[1000000-1].inv(); for(int i=1000000-2;i>=0;i--){ inv[i]=inv[i+1]*(i+1); } int n;string s;cin>>n>>s; int m=n/2; mint ans=0; if(s[1]==')'){ans=mint(2).pow(m);} else{ rep(a,m+1){ mint s=f(m,a); ans+=s*s; } } cout<