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# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

namespace competitive_programming
{
    class Program
    {
        static void Main(string[] args)
        {
            var main = new Program();
            main.solve();
        }

        void solve()
        {
            nums = Console.ReadLine().Select(val => int.Parse(val.ToString())).ToArray();
            //foreach (var n in nums) Console.WriteLine(n);
            while (true)
            {
                char[] rec = new char[4];
                if (dfs(nums[0],1, rec))
                {
                    Console.WriteLine(nums[0] + rec[0].ToString() + nums[1] + rec[1].ToString() + nums[2] + rec[2].ToString() + nums[3] + "=7");
                    return;
                }
            }
            
        }

        int[] nums;

        bool dfs(int sum,int num,char[] rec)
        {
            if (num == 4) return sum == 7;

            else
            {
                if (dfs(sum + nums[num],num+1, rec)) { rec[num-1] = '+'; return true; }
                if (dfs(sum - nums[num], num+1,rec)) { rec[num-1] = '-'; return true;}
                return false;
            }
        }

    }
    struct Vector2
    {
        public Vector2(long x, long y)
        {
            this.x = x;
            this.y = y;
        }
        public long x;
        public long y;
    }

    struct Vector3
    {
        public int x;
        public int y;
        public int z;
    }
}