#include <bits/stdc++.h>
using namespace std;
char S[2032];
int pp[2032][2032] = {0};
int qq[2032][2032] = {0};
int cnt[2032] = {0};
const int mmod = 1000003;
int main() {
  scanf("%s", S);
  int len = strlen(S);
  for (int i = 0; i < len; i++)
    if (S[i] >= '0' && S[i] <= '9') S[i] = '5';
  for (int i = 0; i < len; i++)
    cnt[i + 1] = cnt[i] + (S[i] < '0' || S[i] > '9');
  for (int step = 1; step <= len; step++) {
    for (int i = 0; i <= len - step; i++) {
      int j = i + step - 1;
      if (i < j && (S[i] == '+' || S[i] == '-')) {
        pp[i][j] = qq[j][i] = pp[i + 1][j];
      }
      if (S[j] < '0' || S[j] > '9') continue;
      if (i > 0 && S[i - 1] >= '0' && S[i - 1] <= '9') continue;
      if (j < len - 1 && S[j + 1] >= '0' && S[j + 1] <= '9') continue;
      if (cnt[j + 1] - cnt[i] == 0) {
        pp[i][j] = qq[j][i] = (pp[i][j] + 1) % mmod;
        continue;
      }
      long long now = pp[i][j];
      for (int k = i + 1; k < j; k++)
        if (S[k] != '5') now += pp[i][k - 1] * (long long)qq[j][k + 1];
      pp[i][j] = qq[j][i] = now % mmod;
    }
  }
  printf("%d\n", pp[0][len - 1]);
}
