#include <bits/stdc++.h>
using namespace std;
vector<long long> f(100000 + 1, 0);
vector<long long> tree(4 * 100000 + 1, 0);
vector<long long> arr(100000 + 1);
void add(long long idx, long long val) {
  while (idx <= 100000) {
    f[idx] += val;
    idx += idx & -idx;
  }
}
long long query(long long idx) {
  long long ans = 0;
  while (idx > 0) {
    ans += f[idx];
    idx -= idx & -idx;
  }
  return ans;
}
void build(long long node, long long l, long long r) {
  if (l == r) {
    tree[node] = arr[l];
    return;
  }
  long long mid = (l + r) >> 1;
  build(2 * node + 1, l, mid);
  build(2 * node + 2, mid + 1, r);
  tree[node] = max(tree[2 * node + 2], tree[2 * node + 1]);
}
long long find_max(long long node, long long l, long long r, long long lq,
                   long long rq) {
  if (l == r && lq <= l && l <= rq) return tree[node];
  if (l > rq || r < lq) return -1;
  if (l >= lq && r <= rq) return tree[node];
  long long mid = (l + r) >> 1;
  return max(find_max(2 * node + 1, l, mid, lq, rq),
             find_max(2 * node + 2, mid + 1, r, lq, rq));
}
signed main() {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(false);
  long long begtime = clock();
  ;
  string s;
  cin >> s;
  long long a = 0;
  for (long long i = 0; i < s.size(); ++i) {
    if (s[i] == '+')
      a += 1;
    else if (s[i] == '-')
      a -= 1;
  }
  cout << a << endl;
  long long endtime = clock();
  cerr << endl
       << "Time elapsed: " << (endtime - begtime) * 1000 / CLOCKS_PER_SEC
       << " ms";
  return 0;
}
