func_code_string: #include <bits/stdc++.h>   using namespace std;   string s;   long long ans[2200], MOD = 1000003;   long long dp[2200][2200], inv[2200], fac[2200], ifac[2200];   void init_math(int N) {     inv[1] = 1LL;     for (int i = 2; i <= N; i++)       inv[i] = (MOD - ((MOD / i) * inv[MOD % i]) % MOD);     fac[0] = 1LL;     ifac[0] = 1LL;     for (int i = 1; i <= N; i++) {       fac[i] = (fac[i - 1] * (long long)(i)) % MOD;       ifac[i] = (ifac[i - 1] * inv[i]) % MOD;     }   }   int st[2200], stc, r, len, ms, t[2200], tc;   int main() {     ios::sync_with_stdio(0);     cin.tie(NULL);     cout.tie(NULL);     init_math(2000);     cin >> s;     len = s.size();     ans[1] = 1;     for (int i = 1; i <= 2000; i++)       ans[i + 1] = inv[i + 1] * fac[i * 2] % MOD * ifac[i] % MOD * ifac[i] % MOD;     tc = 0;     bool isn = 0, ist;     for (int i = 0; i < len; i++) {       ist = 0;       if (s[i] <=  9  && s[i] >=  0 )         isn = 1;       else {         if (isn) {           t[tc++] = 0;           isn = 0;         }         if (i == 0 || !(s[i - 1] <=  9  && s[i - 1] >=  0 )) {           if (s[i] ==  *  || s[i] ==  / ) {             cout << 0 << endl;             return 0;           }           t[tc++] = 1;         } else           ist = 1;       }     }     if (isn) t[tc++] = 0;     if (t[tc - 1] == 1 || ist) {       cout << 0 << endl;       return 0;     }     stc = 0;     for (int i = 0; i < tc; i++) {       if (t[i] == 0)         st[stc]++;       else         stc++;     }     if (stc == 0) {       cout << ans[tc] << endl;       return 0;     }     dp[stc + 1][0] = 1;     for (int i = stc; i >= 0; i--) {       r = st[i];       if (i) {         ms += r;         for (int j = 1; j <= ms; j++)           for (int k = max(r - j, 0); k <= ms - j; k++) {             dp[i][k + 1] += (dp[i + 1][k + j - r] * ans[j]) % MOD;             if (dp[i][k + 1] >= MOD) dp[i][k + 1] -= MOD;           }       } else {         for (int j = 0; j <= ms; j++) {           dp[i][j + r] += dp[i + 1][j];           if (dp[i][j + r] >= MOD) dp[i][j + r] -= MOD;         }       }     }     long long res = 0;     for (int i = 1; i <= tc; i++) {       res += (dp[0][i] * ans[i]) % MOD;       if (res >= MOD) res -= MOD;     }     cout << res << endl;     return 0;   }   