

import std.stdio;
import std.algorithm;
import std.range;
import std.array;
import std.string;
import std.conv;

void main(){
	int[] nums = readln.chomp.map!((c) => [c].to!int).array;
	OP[][] opss = [[OP.PLUS,OP.PLUS,OP.PLUS], [OP.PLUS,OP.PLUS,OP.MINUS],[OP.PLUS,OP.MINUS,OP.PLUS],[OP.PLUS,OP.MINUS,OP.MINUS],[OP.MINUS,OP.MINUS,OP.MINUS],
				[OP.MINUS,OP.MINUS,OP.PLUS],[OP.MINUS,OP.PLUS,OP.PLUS],[OP.MINUS,OP.PLUS,OP.MINUS]];
	auto answers = opss.map!((ops) => calc(ops, nums)).array;
	int idx;
	foreach(int i, ans; answers){
		if(ans == 7){
			idx = i;
		}
	}
	auto answer_str = "";
	foreach(ix, OP op; opss[idx]){
		answer_str ~= nums[ix].to!string;
		switch(op){
			case OP.PLUS:{
				answer_str ~= "+";
				break;
			}
			case OP.MINUS:{
				answer_str ~= "-";
				break;
			}
			default:assert(0);
		}
	}
	answer_str ~= nums[$-1].to!string ~ "=7";
	writeln(answer_str);
}

enum OP{
	PLUS,MINUS
}

int calc(OP[] ops, int[] nums){
	if(!ops.empty){
		switch(ops[0]){
			case OP.PLUS:{
				if(nums.length > 2){
					nums = (nums[0] + nums[1]) ~ nums[2..$];
				}else{
					nums = [nums[0] + nums[1]];
				}
				return calc(ops[1..$], nums);
				
			}
			case OP.MINUS:{
				if(nums.length > 2){
					nums = (nums[0] - nums[1]) ~ nums[2..$];
				}else{
					nums = [nums[0] - nums[1]];
				}
				return calc(ops[1..$], nums);
				
			}
			default:assert(0);
		}
	}else{
		return nums[0];
	}
}