
import java.util.*;
import java.io.*;
import java.nio.charset.StandardCharsets;

public class Main {
	static int[] MASK = { 1, 2, 4 };

	public static void main(String[] args) throws IOException {
		InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
		BufferedReader in = new BufferedReader(reader);
		String str = in.readLine();
		int[] vals = new int[4];
		for (int i = 0; i < str.length(); ++i) {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		}
		boolean[] pattern = search(vals);
		System.out.println(toStr(vals, pattern));
	}

	static String toStr(int[] vals, boolean[] pattern) {
		StringBuilder strBuilder = new StringBuilder();
		strBuilder.append(vals[0]);
		for (int i = 1; i < 4; ++i) {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		}
		strBuilder.append("=7");
		return strBuilder.toString();
	}

	static boolean[] search(int[] vals) {
		for (int i = 0; i < 8; ++i) {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		}
		return null;
	}

	static int calc(int[] vals, boolean[] pattern) {
		int result = 0;
		for (int i = 0; i < vals.length; ++i) {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		}
		return result;
	}

	static boolean[] conv(int v) {
		boolean[] result = new boolean[4];
		result[0] = true;
		for (int i = 0; i < MASK.length; ++i) {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		}
		return result;
	}
} import java.util.*; util.* java import java.io.*; io.* java import java.nio.charset.StandardCharsets; StandardCharsets java.nio.charset public class Main {
	static int[] MASK = { 1, 2, 4 };

	public static void main(String[] args) throws IOException {
		InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
		BufferedReader in = new BufferedReader(reader);
		String str = in.readLine();
		int[] vals = new int[4];
		for (int i = 0; i < str.length(); ++i) {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		}
		boolean[] pattern = search(vals);
		System.out.println(toStr(vals, pattern));
	}

	static String toStr(int[] vals, boolean[] pattern) {
		StringBuilder strBuilder = new StringBuilder();
		strBuilder.append(vals[0]);
		for (int i = 1; i < 4; ++i) {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		}
		strBuilder.append("=7");
		return strBuilder.toString();
	}

	static boolean[] search(int[] vals) {
		for (int i = 0; i < 8; ++i) {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		}
		return null;
	}

	static int calc(int[] vals, boolean[] pattern) {
		int result = 0;
		for (int i = 0; i < vals.length; ++i) {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		}
		return result;
	}

	static boolean[] conv(int v) {
		boolean[] result = new boolean[4];
		result[0] = true;
		for (int i = 0; i < MASK.length; ++i) {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		}
		return result;
	}
} Main static int[] MASK = { 1, 2, 4 }; MASK { 1, 2, 4 } 1 2 4 public static void main(String[] args) throws IOException {
		InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
		BufferedReader in = new BufferedReader(reader);
		String str = in.readLine();
		int[] vals = new int[4];
		for (int i = 0; i < str.length(); ++i) {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		}
		boolean[] pattern = search(vals);
		System.out.println(toStr(vals, pattern));
	} main {
		InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
		BufferedReader in = new BufferedReader(reader);
		String str = in.readLine();
		int[] vals = new int[4];
		for (int i = 0; i < str.length(); ++i) {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		}
		boolean[] pattern = search(vals);
		System.out.println(toStr(vals, pattern));
	} InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8); reader new InputStreamReader(System.in, StandardCharsets.UTF_8) BufferedReader in = new BufferedReader(reader); in new BufferedReader(reader) String str = in.readLine(); str in.readLine() in.readLine in int[] vals = new int[4]; vals new int[4] 4 for (int i = 0; i < str.length(); ++i) {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		} int i = 0; int i = 0; i 0 i < str.length() i str.length() str.length str ++i ++i i {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		} {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		} vals[i] = Integer.parseInt(str.substring(i, i + 1)) vals[i] vals i Integer.parseInt(str.substring(i, i + 1)) Integer.parseInt Integer str.substring(i, i + 1) str.substring str i i + 1 i 1 boolean[] pattern = search(vals); pattern search(vals) search vals System.out.println(toStr(vals, pattern)) System.out.println System.out System System.out toStr(vals, pattern) toStr vals pattern String[] args args static String toStr(int[] vals, boolean[] pattern) {
		StringBuilder strBuilder = new StringBuilder();
		strBuilder.append(vals[0]);
		for (int i = 1; i < 4; ++i) {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		}
		strBuilder.append("=7");
		return strBuilder.toString();
	} toStr {
		StringBuilder strBuilder = new StringBuilder();
		strBuilder.append(vals[0]);
		for (int i = 1; i < 4; ++i) {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		}
		strBuilder.append("=7");
		return strBuilder.toString();
	} StringBuilder strBuilder = new StringBuilder(); strBuilder new StringBuilder() strBuilder.append(vals[0]) strBuilder.append strBuilder vals[0] vals 0 for (int i = 1; i < 4; ++i) {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		} int i = 1; int i = 1; i 1 i < 4 i 4 ++i ++i i {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		} {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		} if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			} pattern[i] pattern i {
				strBuilder.append("+" + vals[i]);
			} strBuilder.append("+" + vals[i]) strBuilder.append strBuilder "+" + vals[i] "+" vals[i] vals i {
				strBuilder.append("-" + vals[i]);
			} strBuilder.append("-" + vals[i]) strBuilder.append strBuilder "-" + vals[i] "-" vals[i] vals i strBuilder.append("=7") strBuilder.append strBuilder "=7" return strBuilder.toString(); strBuilder.toString() strBuilder.toString strBuilder int[] vals vals boolean[] pattern pattern static boolean[] search(int[] vals) {
		for (int i = 0; i < 8; ++i) {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		}
		return null;
	} search {
		for (int i = 0; i < 8; ++i) {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		}
		return null;
	} for (int i = 0; i < 8; ++i) {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		} int i = 0; int i = 0; i 0 i < 8 i 8 ++i ++i i {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		} {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		} boolean[] pattern = conv(i); pattern conv(i) conv i int v = calc(vals, pattern); v calc(vals, pattern) calc vals pattern if (v == 7) {
				return pattern;
			} v == 7 v 7 {
				return pattern;
			} return pattern; pattern return null; null int[] vals vals static int calc(int[] vals, boolean[] pattern) {
		int result = 0;
		for (int i = 0; i < vals.length; ++i) {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		}
		return result;
	} calc {
		int result = 0;
		for (int i = 0; i < vals.length; ++i) {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		}
		return result;
	} int result = 0; result 0 for (int i = 0; i < vals.length; ++i) {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		} int i = 0; int i = 0; i 0 i < vals.length i vals.length vals vals.length ++i ++i i {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		} {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		} if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			} pattern[i] pattern i {
				result += vals[i];
			} result += vals[i] result vals[i] vals i {
				result -= vals[i];
			} result -= vals[i] result vals[i] vals i return result; result int[] vals vals boolean[] pattern pattern static boolean[] conv(int v) {
		boolean[] result = new boolean[4];
		result[0] = true;
		for (int i = 0; i < MASK.length; ++i) {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		}
		return result;
	} conv {
		boolean[] result = new boolean[4];
		result[0] = true;
		for (int i = 0; i < MASK.length; ++i) {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		}
		return result;
	} boolean[] result = new boolean[4]; result new boolean[4] 4 result[0] = true result[0] result 0 true for (int i = 0; i < MASK.length; ++i) {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		} int i = 0; int i = 0; i 0 i < MASK.length i MASK.length MASK MASK.length ++i ++i i {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		} {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		} if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			} (MASK[i] & v) > 0 (MASK[i] & v) MASK[i] MASK i v 0 {
				result[i + 1] = true;
			} result[i + 1] = true result[i + 1] result i + 1 i 1 true {
				result[i + 1] = false;
			} result[i + 1] = false result[i + 1] result i + 1 i 1 false return result; result int v v public class Main {
	static int[] MASK = { 1, 2, 4 };

	public static void main(String[] args) throws IOException {
		InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
		BufferedReader in = new BufferedReader(reader);
		String str = in.readLine();
		int[] vals = new int[4];
		for (int i = 0; i < str.length(); ++i) {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		}
		boolean[] pattern = search(vals);
		System.out.println(toStr(vals, pattern));
	}

	static String toStr(int[] vals, boolean[] pattern) {
		StringBuilder strBuilder = new StringBuilder();
		strBuilder.append(vals[0]);
		for (int i = 1; i < 4; ++i) {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		}
		strBuilder.append("=7");
		return strBuilder.toString();
	}

	static boolean[] search(int[] vals) {
		for (int i = 0; i < 8; ++i) {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		}
		return null;
	}

	static int calc(int[] vals, boolean[] pattern) {
		int result = 0;
		for (int i = 0; i < vals.length; ++i) {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		}
		return result;
	}

	static boolean[] conv(int v) {
		boolean[] result = new boolean[4];
		result[0] = true;
		for (int i = 0; i < MASK.length; ++i) {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		}
		return result;
	}
} public class Main {
	static int[] MASK = { 1, 2, 4 };

	public static void main(String[] args) throws IOException {
		InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
		BufferedReader in = new BufferedReader(reader);
		String str = in.readLine();
		int[] vals = new int[4];
		for (int i = 0; i < str.length(); ++i) {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		}
		boolean[] pattern = search(vals);
		System.out.println(toStr(vals, pattern));
	}

	static String toStr(int[] vals, boolean[] pattern) {
		StringBuilder strBuilder = new StringBuilder();
		strBuilder.append(vals[0]);
		for (int i = 1; i < 4; ++i) {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		}
		strBuilder.append("=7");
		return strBuilder.toString();
	}

	static boolean[] search(int[] vals) {
		for (int i = 0; i < 8; ++i) {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		}
		return null;
	}

	static int calc(int[] vals, boolean[] pattern) {
		int result = 0;
		for (int i = 0; i < vals.length; ++i) {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		}
		return result;
	}

	static boolean[] conv(int v) {
		boolean[] result = new boolean[4];
		result[0] = true;
		for (int i = 0; i < MASK.length; ++i) {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		}
		return result;
	}
} Main

import java.util.*;
import java.io.*;
import java.nio.charset.StandardCharsets;

public class Main {
	static int[] MASK = { 1, 2, 4 };

	public static void main(String[] args) throws IOException {
		InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
		BufferedReader in = new BufferedReader(reader);
		String str = in.readLine();
		int[] vals = new int[4];
		for (int i = 0; i < str.length(); ++i) {
			vals[i] = Integer.parseInt(str.substring(i, i + 1));
		}
		boolean[] pattern = search(vals);
		System.out.println(toStr(vals, pattern));
	}

	static String toStr(int[] vals, boolean[] pattern) {
		StringBuilder strBuilder = new StringBuilder();
		strBuilder.append(vals[0]);
		for (int i = 1; i < 4; ++i) {
			if (pattern[i]) {
				strBuilder.append("+" + vals[i]);
			} else {
				strBuilder.append("-" + vals[i]);
			}
		}
		strBuilder.append("=7");
		return strBuilder.toString();
	}

	static boolean[] search(int[] vals) {
		for (int i = 0; i < 8; ++i) {
			boolean[] pattern = conv(i);
			int v = calc(vals, pattern);
			if (v == 7) {
				return pattern;
			}
		}
		return null;
	}

	static int calc(int[] vals, boolean[] pattern) {
		int result = 0;
		for (int i = 0; i < vals.length; ++i) {
			if (pattern[i]) {
				result += vals[i];
			} else {
				result -= vals[i];
			}
		}
		return result;
	}

	static boolean[] conv(int v) {
		boolean[] result = new boolean[4];
		result[0] = true;
		for (int i = 0; i < MASK.length; ++i) {
			if ((MASK[i] & v) > 0) {
				result[i + 1] = true;
			} else {
				result[i + 1] = false;
			}
		}
		return result;
	}
}