#include <bits/stdc++.h>
using namespace std;
int dp[2005][2005], sum[2005][2005], arr[2005];
char str[2005];
inline void upd(int &x, int y) {
  x += y;
  if (x >= 1000003) x -= 1000003;
}
int main() {
  scanf("%s", str);
  int n = strlen(str), len = 0;
  if (((str[0]) == '*' || (str[0]) == '/') ||
      (((str[n - 1]) == '+' || (str[n - 1]) == '-') ||
       ((str[n - 1]) == '*' || (str[n - 1]) == '/'))) {
    puts("0");
    return 0;
  }
  for (int i = 0; i < n; i++) {
    if ((((str[i]) == '+' || (str[i]) == '-') ||
         ((str[i]) == '*' || (str[i]) == '/'))) {
      if (((str[i + 1]) == '+' || (str[i + 1]) == '-'))
        arr[len] = 1;
      else if (((str[i + 1]) == '*' || (str[i + 1]) == '/')) {
        puts("0");
        return 0;
      }
      len++;
    }
  }
  dp[0][0] = 1;
  for (int i = 0; i < len; i++) {
    for (int j = 0; j <= len; j++) {
      sum[i][j] = dp[i][j];
      if (j) upd(sum[i][j], sum[i][j - 1]);
    }
    if (!arr[i]) {
      for (int j = 0; j < len; j++) upd(dp[i + 1][j], sum[i][j + 1]);
    } else {
      for (int j = 1; j < len; j++) upd(dp[i + 1][j], sum[i][j]);
    }
  }
  printf("%d\n", dp[len][0]);
  return 0;
}
