Problem:
Score : 300 points

Problem Statement

Sitting in a station waiting room, Joisino is gazing at her train ticket.

The ticket is numbered with four digits A, B, C and D in this order, each between 0 and 9 (inclusive).

In the formula A op1 B op2 C op3 D = 7, replace each of the symbols op1, op2 and op3 with + or - so that the formula holds.

The given input guarantees that there is a solution. If there are multiple solutions, any of them will be accepted.

Constraints

0≤A,B,C,D≤9

All input values are integers.

It is guaranteed that there is a solution.

Input

Input is given from Standard Input in the following format:

ABCD

Output

Print the formula you made, including the part =7.

Use the signs + and -.

Do not print a space between a digit and a sign.

Sample Input 1

1222

Sample Output 1

1+2+2+2=7

This is the only valid solution.

Sample Input 2

0290

Sample Output 2

0-2+9+0=7

0 - 2 + 9 - 0 = 7 is also a valid solution.

Sample Input 3

3242

Sample Output 3

3+2+4-2=7

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <iostream>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <map>
#include <set>
using namespace std;

bool func(vector<int>& v, vector<int>& a){
  if(v.size() == 3){
    int ret = a[0];
    for(int i = 0; i < 3; i++){
      if(v[i] == 0) ret += a[i + 1];
      else ret -= a[i + 1];
    }
    if(ret == 7){
      cout << a[0];
      for(int i = 0; i < 3; i++){
        if(v[i] == 0) cout << '+';
        else cout << '-';
        cout << a[i + 1];
      }
      cout << "=7\n";
      return true;
    }
    else return false;
  }
  v.push_back(0);
  bool b1 = func(v, a);
  v.pop_back();
  if(b1 == true) return true;
  v.push_back(1);
  bool b2 = func(v, a);
  v.pop_back();
  if(b2 == true) return true;
  return false;
}

void solve(){
  string s; cin >> s;
  vector<int> a(4);
  for(int i = 0; i < 4; i++){
    a[i] = s[i] - '0';
  }
  vector<int> v;
  func(v, a);
  return;
}

int main(){
  solve();
  return 0;
}