#include <bits/stdc++.h>
using namespace std;
vector<pair<pair<int, int>, int> > v;
int a[(int)(1e5 + 50)];
string s;
void solve() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    int x;
    scanf("%d", &x);
    s += (char)(x + '0');
  }
  for (int i = 0; i < s.size();) {
    int st = i, len = 0;
    char c = s[i];
    while (i < s.size() && c == s[i]) {
      len++;
      i++;
    }
    v.push_back(make_pair(make_pair(st, len), (int)(c - '0')));
  }
  int len = v.size();
  if (v[len - 1].second == 1 ||
      (v[len - 1].first.second == 2 && v[len - 1].second == 0 && len < 3)) {
    printf("NO");
    return;
  }
  printf("YES\n");
  string ans;
  if (v[len - 1].first.second == 2) {
    for (int i = 0; i < len - 3; i++) {
      char toAdd = (char)(v[i].second + '0');
      for (int j = 0; j < v[i].first.second; j++) {
        ans += toAdd;
        ans += "->";
      }
    }
    for (int j = 0; j < v[len - 3].first.second - 1; j++) {
      ans += '0';
      ans += "->";
    }
    ans += "(0->(";
    for (int i = 0; i < v[len - 2].first.second; i++) {
      ans += '1';
      ans += "->";
    }
    ans += "0))->0";
    cout << ans;
    return;
  }
  if (v[len - 1].first.second % 2 == 0) {
    ans += '(';
    for (int i = 0; i < v[len - 1].first.second - 3; i++) {
      ans += "0->";
    }
    ans += "(0->0)";
    ans += "->0";
    ans += ')';
  } else {
    ans += '(';
    for (int i = 0; i < v[len - 1].first.second - 1; i++) {
      ans += "0->";
    }
    ans += "0";
    ans += ')';
  }
  if (len - 1 == 0) {
    cout << ans;
    return;
  }
  reverse(ans.begin(), ans.end());
  ans += ">-";
  ans += ")1";
  for (int i = 0; i < v[len - 2].first.second - 1; i++) {
    ans += ">-1";
  }
  ans += "(";
  for (int i = len - 3; i >= 0; i--) {
    ans += ">-";
    char toAdd = (char)(v[i].second + '0');
    int curlen = v[i].first.second;
    for (int j = 0; j < curlen - 1; j++) {
      ans += toAdd;
      ans += ">-";
    }
    ans += toAdd;
  }
  reverse(ans.begin(), ans.end());
  cout << ans;
}
int main() {
  int t = 1;
  for (int i = 1; i <= t; i++) {
    solve();
  }
  return 0;
}
