#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e5 + 3;
map<int, vector<int>> sign;
int a[MAX];
int main() {
  int n;
  cin >> n;
  multiset<int> st;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    st.insert(a[i]);
  }
  vector<pair<int, int>> v;
  for (int i = 0; i < n - 1; i++) {
    int x = *st.rbegin();
    st.erase(st.find(x));
    int y = *st.rbegin();
    st.erase(st.find(y));
    st.insert(x - y);
    v.push_back({x, y});
  }
  int S = *st.rbegin();
  sign[S].push_back(1);
  for (int i = n - 2; i >= 0; i--) {
    int x = v[i].first, y = v[i].second;
    int p = sign[x - y].back();
    sign[x - y].pop_back();
    sign[x].push_back(p), sign[y].push_back(p ^ 1);
  }
  for (int i = 1; i <= n; i++) {
    if (sign[a[i]].back())
      cout << "+";
    else
      cout << "-";
    sign[a[i]].pop_back();
  }
}
