#include <bits/stdc++.h>
using namespace std;
int n, memo[2001][2001], p, num[2001];
string s;
long long power(long long a, long long b) {
  long long res = 1;
  a %= p;
  while (b > 0) {
    if (b % 2 == 1) res = (res * a) % p;
    b /= 2;
    a = (a * a) % p;
  }
  return res;
}
long long dp(int l, int r) {
  if (l >= r) return 0;
  if (memo[l][r] != -1) return memo[l][r];
  long long res = 0;
  if (s[l] != '(') res += dp(l + 1, r);
  if (s[r] != ')') res += dp(l, r - 1);
  if (s[l] != '(' && s[r] != ')') res -= dp(l + 1, r - 1);
  if (s[l] != ')' && s[r] != '(') {
    res += dp(l + 1, r - 1) + power(2, num[r - 1] - num[l]);
  }
  res %= p;
  return memo[l][r] = res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> s;
  n = s.size();
  p = 998244353;
  memset(memo, -1, sizeof(memo));
  if (s[0] == '?') num[0]++;
  for (int i = 1; i < n; i++) {
    num[i] = num[i - 1];
    if (s[i] == '?') num[i]++;
  }
  cout << dp(0, n - 1);
}
