#include <bits/stdc++.h>
using namespace std;
stack<int> stk;
void solve(int n) {
  if (!n) puts("++++++++++++++++++++++++++++++++++++++++++++++++.");
  while (n) {
    stk.push(n % 10);
    n /= 10;
  }
  int mark = 0;
  while (!stk.empty()) {
    if (mark) printf(">");
    int t = stk.top();
    for (int i = 0; i < t; i++) printf("+");
    printf("++++++++++++++++++++++++++++++++++++++++++++++++");
    printf(".\n");
    mark = 1;
    stk.pop();
  }
  return;
}
int main() {
  char str[30005];
  while (~scanf("%s", str)) {
    vector<int> v;
    vector<int> vs;
    int flag = 1, ans;
    int len = strlen(str);
    for (int i = 0; i < len;) {
      int num = 0;
      while (str[i] >= '0' && str[i] <= '9') {
        num *= 10;
        num += str[i] - '0';
        i++;
      }
      vs.push_back(num);
      if (str[i] == '-') {
        v.push_back(0);
        i++;
      } else if (str[i] == '+') {
        v.push_back(1);
        i++;
      }
    }
    ans = vs[0];
    int cnt = 1;
    for (int i = 0; i < v.size(); i++) {
      if (v[i])
        ans += vs[cnt];
      else
        ans -= vs[cnt];
      cnt++;
    }
    solve(ans);
  }
  return 0;
}
