#include <bits/stdc++.h>
int ___read_tmp;
using namespace std;
int signs[101000][2];
int vals[101000];
int n;
int main() {
  scanf("%d", &n);
  vector<int> vec;
  for (int i = (0); i < (n); i++) {
    int tmp;
    scanf("%d", &tmp);
    vec.push_back(tmp);
  }
  if (vec.size() == 1) {
    printf("+");
    return 0;
  }
  vals[vec.size() - 1] = vec[vec.size() - 1];
  signs[vec.size() - 1][0] = 1;
  for (int i = vec.size() - 2; i >= 0; i--) {
    if (vec[i] >= vals[i + 1]) {
      signs[i][0] = 1;
      signs[i][1] = -1;
      vals[i] = vec[i] - vals[i + 1];
    } else {
      signs[i][0] = -1;
      signs[i][1] = +1;
      vals[i] = vals[i + 1] - vec[i];
    }
  }
  int mul = 1;
  for (int i = (0); i < (vec.size()); i++) {
    if (mul * signs[i][0] > 0) {
      printf("+");
    } else {
      printf("-");
    }
    mul *= signs[i][1];
  }
  return 0;
}
