#include <bits/stdc++.h>
using namespace std;
int c[4];
int d[4];
vector<char> op;
vector<int> nr;
int main() {
  ios_base::sync_with_stdio(0);
  srand(time(0));
  for (int i = 0; i <= (int)(4) - 1; i++) cin >> d[i];
  int m, k;
  int w;
  int time = clock();
  for (int zzz = 0; zzz <= (int)(1) - 1; zzz++) {
    if (zzz % 100 == 0 && (double((clock() - time)) / CLOCKS_PER_SEC) > 1.6)
      break;
    int prob = 0;
    for (int i = 0; i <= (int)(4) - 1; i++) c[i] = d[i];
    op.clear();
    nr.clear();
    for (int l = 0; l <= (int)(10) - 1; l++) {
      int r = rand() % 4;
      int s = rand() % 2;
      if (s && c[((r + 8) % 4)] % 2 == 0 && c[((r + 1 + 8) % 4)] % 2 == 0) {
        c[((r + 8) % 4)] /= 2;
        c[((r + 1 + 8) % 4)] /= 2;
        op.push_back('/');
        nr.push_back(r);
      } else {
        c[((r + 8) % 4)] += 1;
        c[((r + 1 + 8) % 4)] += 1;
        op.push_back('+');
        nr.push_back(r);
      }
    }
    while (c[0] > 1 || c[1] > 1 || c[2] > 1 || c[3] > 1) {
      if (rand() % (12) == 0) {
        int r = rand() % 4;
        int s = rand() % 2;
        if (s && c[((r + 8) % 4)] % 2 == 0 && c[((r + 1 + 8) % 4)] % 2 == 0) {
          c[((r + 8) % 4)] /= 2;
          c[((r + 1 + 8) % 4)] /= 2;
          op.push_back('/');
          nr.push_back(r);
        } else {
          c[((r + 8) % 4)] += 1;
          c[((r + 1 + 8) % 4)] += 1;
          op.push_back('+');
          nr.push_back(r);
        }
      }
      prob++;
      if (prob > 400) break;
      w = 0;
      for (int i = 0; i <= (int)(4) - 1; i++) {
        if (c[i] > w) {
          w = c[i];
          m = i;
        }
      }
      if (c[m] % 2) {
        if (rand() % 2)
          k = ((m - 1 + 8) % 4);
        else
          k = ((m + 8) % 4);
        op.push_back('+');
        nr.push_back(k);
        c[((k + 8) % 4)]++;
        c[((k + 1 + 8) % 4)]++;
        continue;
      } else {
        if (c[((m - 1 + 8) % 4)] > c[((m + 1 + 8) % 4)]) {
          if (c[((m - 1 + 8) % 4)] % 2 == 0) {
            op.push_back('/');
            nr.push_back(((m - 1 + 8) % 4));
            c[((m - 1 + 8) % 4)] /= 2;
            c[m] /= 2;
            continue;
          } else {
            op.push_back('+');
            nr.push_back(((m - 2 + 8) % 4));
            c[((m - 1 + 8) % 4)]++;
            c[((m - 2 + 8) % 4)]++;
            continue;
          }
        } else {
          if (c[((m + 1 + 8) % 4)] % 2 == 0) {
            op.push_back('/');
            nr.push_back(((m + 8) % 4));
            c[((m + 1 + 8) % 4)] /= 2;
            c[m] /= 2;
            continue;
          } else {
            op.push_back('+');
            nr.push_back(((m + 1 + 8) % 4));
            c[((m + 1 + 8) % 4)]++;
            c[((m + 2 + 8) % 4)]++;
            continue;
          }
        }
      }
    }
    if (prob <= 400) {
      for (int i = 0; i <= (int)(op.size()) - 1; i++) {
        cout << op[i] << nr[i] + 1 << endl;
      }
      return 0;
    }
  }
  cout << "-1" << endl;
  return 0;
}
