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++ (GCC 9.2.1) (judge verdict: Wrong Answer)

// 2^n 探索

#include  <iostream>
#include  <vector>
#include  <string>
#include  <sstream>
#include  <cmath>
#include  <cstdlib>

#define pass()

std::string solve_BitSearch(std::string str, int tar);  // ビット探索
std::string solve_RecSearch(std::string str, int tar);  // 再帰探索
std::string proc_RecSearch(std::string str, int tar, std::string s);   // 再帰探索(実体)


int main(void)
{
	std::string s;
	std::cin >> s;

	std::string ans;
	ans = solve_BitSearch(s, 7);

	std::cout << ans << std::endl;


	return EXIT_SUCCESS;
}


std::string solve_BitSearch(std::string str, int tar)
{
	int d = str.size();

	std::istringstream ss;
	int var;
	
	ss = std::istringstream(str);
	ss >> var;
	
	std::string s = "";

	for(int bit = 0; bit < (1 << d); ++bit) {
		std::string v;

		// Active --> '+'を挿入する
		// In-active --> '-'を挿入する;;
		for(int i = 0; i < d; ++i) {
			if(bit & (1 << i))
				v.push_back('+');
			else
				v.push_back('-');
		}

		int p = var, q = std::pow(10, d-1);
		int n = 0;

		for(int i = 0; i < d; ++i) {
			int m = p/q;

			s.push_back(i == 0 ? '\0' : v[i]);
			s.push_back(str[i]);

			if(v[i] == '-')
				m = -1 * m;

			n = n+m;
			p = p%q;
			q = q/10;
		}

		if(n == tar)
			break;

		s = ""; // 見つからない場合はloop終了時にs = ""となる
	}

	s.push_back('=');
	s.push_back('0' + tar);

	return s;
}

std::string solve_RecSearch(std::string str, int tar)
{
	std::string s = "";

	return s;
}

std::string proc_RecSearch(std::string str, int tar, std::string s)
{
	return s;
}