#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 3e3 + 5;
const int MOD = 998244353;
void add(int& a, int b) {
a += b;
if (a >= MOD) a -= MOD;
}
int n;
string s;
int dp[N][N]; // dp[i][d] = Số dãy ngoặc khi xét đến vị trí thứ i
// với chênh lệch ngoặc mở - ngoặc đóng là d
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> s;
n = s.size();
s = ' ' + s;
dp[0][0] = 1;
for (int i = 1; i <= n; i++) {
for (int prev_d = 0; prev_d <= n; prev_d++) {
// chọn ngoặc mở
if (s[i] == '?' || s[i] == '(') {
add(dp[i][prev_d + 1], dp[i - 1][prev_d]);
}
// chọn ngoặc đóng
if (s[i] == '?' || s[i] == ')') {
if (prev_d > 0) add(dp[i][prev_d - 1], dp[i - 1][prev_d]);
}
}
}
cout << dp[n][0] << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgpjb25zdCBpbnQgTiA9IDNlMyArIDU7ICAKY29uc3QgaW50IE1PRCA9IDk5ODI0NDM1MzsgCgp2b2lkIGFkZChpbnQmIGEsIGludCBiKSB7CglhICs9IGI7IAoJaWYgKGEgPj0gTU9EKSBhIC09IE1PRDsgCn0KCmludCBuOyAgIApzdHJpbmcgczsgIAppbnQgZHBbTl1bTl07IC8vIGRwW2ldW2RdID0gU+G7kSBkw6N5IG5nb+G6t2Mga2hpIHjDqXQgxJHhur9uIHbhu4sgdHLDrSB0aOG7qSBpIAoJCQkgIC8vICAgICAgICAgICAgduG7m2kgY2jDqm5oIGzhu4djaCBuZ2/hurdjIG3hu58gLSBuZ2/hurdjIMSRw7NuZyBsw6AgZAoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAoJY2luLnRpZShudWxscHRyKTsgIAkKCWNpbiA+PiBzOyAKCW4gPSBzLnNpemUoKTsgCglzID0gJyAnICsgczsgICAKCglkcFswXVswXSA9IDE7ICAgCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKCQlmb3IgKGludCBwcmV2X2QgPSAwOyBwcmV2X2QgPD0gbjsgcHJldl9kKyspIHsKCQkJLy8gY2jhu41uIG5nb+G6t2MgbeG7nwoJCQlpZiAoc1tpXSA9PSAnPycgfHwgc1tpXSA9PSAnKCcpIHsKCQkJCWFkZChkcFtpXVtwcmV2X2QgKyAxXSwgZHBbaSAtIDFdW3ByZXZfZF0pOyAgCgkJCX0KCQkJLy8gY2jhu41uIG5nb+G6t2MgxJHDs25nCgkJCWlmIChzW2ldID09ICc/JyB8fCBzW2ldID09ICcpJykgewoJCQkJaWYgKHByZXZfZCA+IDApIGFkZChkcFtpXVtwcmV2X2QgLSAxXSwgZHBbaSAtIDFdW3ByZXZfZF0pOyAgCgkJCX0KCQl9Cgl9CgoJY291dCA8PCBkcFtuXVswXSA8PCAnXG4nOyAKfQ==