#include <bits/stdc++.h>
const long long iinf = 1e18;
const int inf = 1e9;
const int MOD = (1e6 + 3);
int dir4[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
int knight[8][2] = {{2, 1}, {2, -1}, {-2, 1}, {-2, -1},
                    {1, 2}, {-1, 2}, {1, -2}, {-1, -2}};
using namespace std;
map<char, string> mp = {{'>', "1000"}, {'<', "1001"}, {'+', "1010"},
                        {'-', "1011"}, {'.', "1100"}, {',', "1101"},
                        {'[', "1110"}, {']', "1111"}};
int memo[500];
void solve() {
  string s;
  cin >> s;
  string binary = "";
  for (char c : s) {
    binary += mp[c];
  }
  int ans = 0;
  for (int i = binary.size() - 1, k = 1; i >= 0; i--) {
    if (binary[i] == '1') {
      ans += k;
    }
    k <<= 1;
    k %= MOD;
  }
  cout << ans % MOD;
}
int main() {
  int t = 1;
  memset(memo, -1, sizeof memo);
  while (t--) {
    solve();
    printf("\n");
  }
  return 0;
}
