import java.io.BufferedReader;

import static java.util.Comparator.*;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.util.AbstractMap;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class Main {
	
//	public static Set<String> mem = new HashSet<String>();
//	public static boolean[] mem_1 = new boolean[100];
//	public static boolean[] mem_2 = new boolean[100];
//	public static Set<Integer> mem = new TreeSet<Integer>();
//	public static Map<String, Integer> mem_1= new HashMap<String, Integer>();
//	public static Map<String, Integer> mem_2 = new HashMap<String, Integer>();
	
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        MyInput in = new MyInput(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        
        Solver solver = new Solver();
        solver.solve(1, in, out);
        
        out.close();
    }
    
    // ======================================================================
    static class Solver {
    	
		List<Pair<Integer, Integer>> lP = new ArrayList<Pair<Integer, Integer>>();
		List<Pair<Integer, Integer>> lAns = new ArrayList<Pair<Integer, Integer>>();
		
		int A[] = new int[4];
		
		String calc(int data, int cnt) {
			if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			}
			String ans = "";
			String wk = calc(data + A[cnt], cnt+1);
			if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			}
			return ans;
		}
    	
		public void solve(int testNumber, MyInput in, PrintWriter out) {
			String S = in.nextString();
// 			out.println("[" + S + "]");

			for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		}
    		  		
    		out.println(calc(0, 0));
        }
    }
    // ======================================================================
    static class Pair<K, V> extends AbstractMap.SimpleEntry<K, V> {
        /** serialVersionUID. */
        private static final long serialVersionUID = 6411527075103472113L;

        public Pair(final K key, final V value) {
            super(key, value);
        }
        public String getString() {
            return "[" + getKey() + "] [" + getValue() + "]";
        }
     }    
    static class MyInput {
        private final BufferedReader in;
        private static int pos;
        private static int readLen;
        private static final char[] buffer = new char[1024 * 8];
        private static char[] str = new char[500 * 8 * 2];
        private static boolean[] isDigit = new boolean[256];
        private static boolean[] isSpace = new boolean[256];
        private static boolean[] isLineSep = new boolean[256];
 
        static {
            for (int i = 0; i < 10; i++) {
                isDigit['0' + i] = true;
            }
            isDigit['-'] = true;
            isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true;
            isLineSep['\r'] = isLineSep['\n'] = true;
        }
 
        public MyInput(InputStream is) {
            in = new BufferedReader(new InputStreamReader(is));
        }
 
        public int read() {
            if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            }
            return buffer[pos++];
        }
 
        public int nextInt() {
            int len = 0;
            str[len++] = nextChar();
            len = reads(len, isSpace);
            int i = 0;
            int ret = 0;
            if (str[0] == '-') {
                i = 1;
            }
            for (; i < len; i++) ret = ret * 10 + str[i] - '0';
            if (str[0] == '-') {
                ret = -ret;
            }
            return ret;
        }
 
        public String nextString() {
        	String ret = new String(nextDChar()).trim();
            return ret;
        }
 
        public char[] nextDChar() {
            int len = 0;
            len = reads(len, isSpace);
            char[] ret = new char[len + 1];
            for (int i=0; i < len; i++)		ret[i] = str[i];
            ret[len] = 0x00;
            return ret;
        }
 
        public char nextChar() {
            while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            }
        }
 
        int reads(int len, boolean[] accept) {
            try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            }
            return len;
        }
 
        static class EndOfFileRuntimeException extends RuntimeException {
        }
    }
} import java.io.BufferedReader; BufferedReader java.io import static java.util.Comparator.*; import static java.util.Comparator.*; import static java.util.Comparator.*; import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.OutputStream; OutputStream java.io import java.io.PrintWriter; PrintWriter java.io import java.lang.reflect.Array; Array java.lang.reflect import java.math.BigDecimal; BigDecimal java.math import java.util.AbstractMap; AbstractMap java.util import java.util.ArrayDeque; ArrayDeque java.util import java.util.ArrayList; ArrayList java.util import java.util.Arrays; Arrays java.util import java.util.Comparator; Comparator java.util import java.util.HashMap; HashMap java.util import java.util.HashSet; HashSet java.util import java.util.Iterator; Iterator java.util import java.util.LinkedHashMap; LinkedHashMap java.util import java.util.List; List java.util import java.util.Map; Map java.util import java.util.PriorityQueue; PriorityQueue java.util import java.util.Queue; Queue java.util import java.util.Set; Set java.util import java.util.TreeMap; TreeMap java.util import java.util.TreeSet; TreeSet java.util public class Main {
	
//	public static Set<String> mem = new HashSet<String>();
//	public static boolean[] mem_1 = new boolean[100];
//	public static boolean[] mem_2 = new boolean[100];
//	public static Set<Integer> mem = new TreeSet<Integer>();
//	public static Map<String, Integer> mem_1= new HashMap<String, Integer>();
//	public static Map<String, Integer> mem_2 = new HashMap<String, Integer>();
	
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        MyInput in = new MyInput(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        
        Solver solver = new Solver();
        solver.solve(1, in, out);
        
        out.close();
    }
    
    // ======================================================================
    static class Solver {
    	
		List<Pair<Integer, Integer>> lP = new ArrayList<Pair<Integer, Integer>>();
		List<Pair<Integer, Integer>> lAns = new ArrayList<Pair<Integer, Integer>>();
		
		int A[] = new int[4];
		
		String calc(int data, int cnt) {
			if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			}
			String ans = "";
			String wk = calc(data + A[cnt], cnt+1);
			if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			}
			return ans;
		}
    	
		public void solve(int testNumber, MyInput in, PrintWriter out) {
			String S = in.nextString();
// 			out.println("[" + S + "]");

			for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		}
    		  		
    		out.println(calc(0, 0));
        }
    }
    // ======================================================================
    static class Pair<K, V> extends AbstractMap.SimpleEntry<K, V> {
        /** serialVersionUID. */
        private static final long serialVersionUID = 6411527075103472113L;

        public Pair(final K key, final V value) {
            super(key, value);
        }
        public String getString() {
            return "[" + getKey() + "] [" + getValue() + "]";
        }
     }    
    static class MyInput {
        private final BufferedReader in;
        private static int pos;
        private static int readLen;
        private static final char[] buffer = new char[1024 * 8];
        private static char[] str = new char[500 * 8 * 2];
        private static boolean[] isDigit = new boolean[256];
        private static boolean[] isSpace = new boolean[256];
        private static boolean[] isLineSep = new boolean[256];
 
        static {
            for (int i = 0; i < 10; i++) {
                isDigit['0' + i] = true;
            }
            isDigit['-'] = true;
            isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true;
            isLineSep['\r'] = isLineSep['\n'] = true;
        }
 
        public MyInput(InputStream is) {
            in = new BufferedReader(new InputStreamReader(is));
        }
 
        public int read() {
            if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            }
            return buffer[pos++];
        }
 
        public int nextInt() {
            int len = 0;
            str[len++] = nextChar();
            len = reads(len, isSpace);
            int i = 0;
            int ret = 0;
            if (str[0] == '-') {
                i = 1;
            }
            for (; i < len; i++) ret = ret * 10 + str[i] - '0';
            if (str[0] == '-') {
                ret = -ret;
            }
            return ret;
        }
 
        public String nextString() {
        	String ret = new String(nextDChar()).trim();
            return ret;
        }
 
        public char[] nextDChar() {
            int len = 0;
            len = reads(len, isSpace);
            char[] ret = new char[len + 1];
            for (int i=0; i < len; i++)		ret[i] = str[i];
            ret[len] = 0x00;
            return ret;
        }
 
        public char nextChar() {
            while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            }
        }
 
        int reads(int len, boolean[] accept) {
            try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            }
            return len;
        }
 
        static class EndOfFileRuntimeException extends RuntimeException {
        }
    }
} Main public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        MyInput in = new MyInput(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        
        Solver solver = new Solver();
        solver.solve(1, in, out);
        
        out.close();
    } main {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        MyInput in = new MyInput(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        
        Solver solver = new Solver();
        solver.solve(1, in, out);
        
        out.close();
    } InputStream inputStream = System.in; inputStream System.in System System.in OutputStream outputStream = System.out; outputStream System.out System System.out MyInput in = new MyInput(inputStream); in new MyInput(inputStream) PrintWriter out = new PrintWriter(outputStream); out new PrintWriter(outputStream) Solver solver = new Solver(); solver new Solver() solver.solve(1, in, out) solver.solve solver 1 in out out.close() out.close out String[] args args static class Solver {
    	
		List<Pair<Integer, Integer>> lP = new ArrayList<Pair<Integer, Integer>>();
		List<Pair<Integer, Integer>> lAns = new ArrayList<Pair<Integer, Integer>>();
		
		int A[] = new int[4];
		
		String calc(int data, int cnt) {
			if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			}
			String ans = "";
			String wk = calc(data + A[cnt], cnt+1);
			if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			}
			return ans;
		}
    	
		public void solve(int testNumber, MyInput in, PrintWriter out) {
			String S = in.nextString();
// 			out.println("[" + S + "]");

			for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		}
    		  		
    		out.println(calc(0, 0));
        }
    } Solver List<Pair<Integer, Integer>> lP = new ArrayList<Pair<Integer, Integer>>(); lP new ArrayList<Pair<Integer, Integer>>() List<Pair<Integer, Integer>> lAns = new ArrayList<Pair<Integer, Integer>>(); lAns new ArrayList<Pair<Integer, Integer>>() int A[] = new int[4]; A new int[4] 4 String calc(int data, int cnt) {
			if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			}
			String ans = "";
			String wk = calc(data + A[cnt], cnt+1);
			if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			}
			return ans;
		} calc {
			if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			}
			String ans = "";
			String wk = calc(data + A[cnt], cnt+1);
			if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			}
			return ans;
		} if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			} cnt >= 4 cnt 4 {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			} if(data == 7) {
					return "=7";
				} else {
					return null;
				} data == 7 data 7 {
					return "=7";
				} return "=7"; "=7" {
					return null;
				} return null; null String ans = ""; ans "" String wk = calc(data + A[cnt], cnt+1); wk calc(data + A[cnt], cnt+1) calc data + A[cnt] data A[cnt] A cnt cnt+1 cnt 1 if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			} wk != null wk null {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    } cnt == 0 cnt 0 {
				    ans = A[cnt] + wk;   
			    } ans = A[cnt] + wk ans A[cnt] + wk A[cnt] A cnt wk {
				    ans = "+" + A[cnt] + wk;   
			    } ans = "+" + A[cnt] + wk ans "+" + A[cnt] + wk "+" + A[cnt] + wk "+" A[cnt] A cnt wk {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			} wk = calc(data - A[cnt], cnt+1) wk calc(data - A[cnt], cnt+1) calc data - A[cnt] data A[cnt] A cnt cnt+1 cnt 1 if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				} wk != null wk null {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    } cnt == 0 cnt 0 {
					    ans = A[cnt] + wk;   
				    } ans = A[cnt] + wk ans A[cnt] + wk A[cnt] A cnt wk {
					    ans = "-" + A[cnt] + wk;   
				    } ans = "-" + A[cnt] + wk ans "-" + A[cnt] + wk "-" + A[cnt] + wk "-" A[cnt] A cnt wk {
					ans = null;
				} ans = null ans null return ans; ans int data data int cnt cnt public void solve(int testNumber, MyInput in, PrintWriter out) {
			String S = in.nextString();
// 			out.println("[" + S + "]");

			for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		}
    		  		
    		out.println(calc(0, 0));
        } solve {
			String S = in.nextString();
// 			out.println("[" + S + "]");

			for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		}
    		  		
    		out.println(calc(0, 0));
        } String S = in.nextString(); S in.nextString() in.nextString in for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		} int i=0; int i=0; i 0 i < 4 i 4 i++ i++ i {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		} {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		} A[i] = Integer.valueOf(S.substring(i, i+1)) A[i] A i Integer.valueOf(S.substring(i, i+1)) Integer.valueOf Integer S.substring(i, i+1) S.substring S i i+1 i 1 out.println(calc(0, 0)) out.println out calc(0, 0) calc 0 0 int testNumber testNumber MyInput in in PrintWriter out out static class Pair<K, V> extends AbstractMap.SimpleEntry<K, V> {
        /** serialVersionUID. */
        private static final long serialVersionUID = 6411527075103472113L;

        public Pair(final K key, final V value) {
            super(key, value);
        }
        public String getString() {
            return "[" + getKey() + "] [" + getValue() + "]";
        }
     } Pair /** serialVersionUID. */
        private static final long serialVersionUID = 6411527075103472113L; serialVersionUID 6411527075103472113L public Pair(final K key, final V value) {
            super(key, value);
        } Pair {
            super(key, value);
        } super(key, value) super key value final K key key final V value value public String getString() {
            return "[" + getKey() + "] [" + getValue() + "]";
        } getString {
            return "[" + getKey() + "] [" + getValue() + "]";
        } return "[" + getKey() + "] [" + getValue() + "]"; "[" + getKey() + "] [" + getValue() + "]" getValue() "] [" "[" + getKey() + "] [" + getValue() + "]" "[" getKey() getKey "] [" getValue() getValue "]" SimpleEntry static class MyInput {
        private final BufferedReader in;
        private static int pos;
        private static int readLen;
        private static final char[] buffer = new char[1024 * 8];
        private static char[] str = new char[500 * 8 * 2];
        private static boolean[] isDigit = new boolean[256];
        private static boolean[] isSpace = new boolean[256];
        private static boolean[] isLineSep = new boolean[256];
 
        static {
            for (int i = 0; i < 10; i++) {
                isDigit['0' + i] = true;
            }
            isDigit['-'] = true;
            isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true;
            isLineSep['\r'] = isLineSep['\n'] = true;
        }
 
        public MyInput(InputStream is) {
            in = new BufferedReader(new InputStreamReader(is));
        }
 
        public int read() {
            if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            }
            return buffer[pos++];
        }
 
        public int nextInt() {
            int len = 0;
            str[len++] = nextChar();
            len = reads(len, isSpace);
            int i = 0;
            int ret = 0;
            if (str[0] == '-') {
                i = 1;
            }
            for (; i < len; i++) ret = ret * 10 + str[i] - '0';
            if (str[0] == '-') {
                ret = -ret;
            }
            return ret;
        }
 
        public String nextString() {
        	String ret = new String(nextDChar()).trim();
            return ret;
        }
 
        public char[] nextDChar() {
            int len = 0;
            len = reads(len, isSpace);
            char[] ret = new char[len + 1];
            for (int i=0; i < len; i++)		ret[i] = str[i];
            ret[len] = 0x00;
            return ret;
        }
 
        public char nextChar() {
            while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            }
        }
 
        int reads(int len, boolean[] accept) {
            try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            }
            return len;
        }
 
        static class EndOfFileRuntimeException extends RuntimeException {
        }
    } MyInput private final BufferedReader in; in private static int pos; pos private static int readLen; readLen private static final char[] buffer = new char[1024 * 8]; buffer new char[1024 * 8] 1024 * 8 1024 8 private static char[] str = new char[500 * 8 * 2]; str new char[500 * 8 * 2] 500 * 8 * 2 500 * 8 * 2 500 8 2 private static boolean[] isDigit = new boolean[256]; isDigit new boolean[256] 256 private static boolean[] isSpace = new boolean[256]; isSpace new boolean[256] 256 private static boolean[] isLineSep = new boolean[256]; isLineSep new boolean[256] 256 public MyInput(InputStream is) {
            in = new BufferedReader(new InputStreamReader(is));
        } MyInput {
            in = new BufferedReader(new InputStreamReader(is));
        } in = new BufferedReader(new InputStreamReader(is)) in new BufferedReader(new InputStreamReader(is)) InputStream is is public int read() {
            if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            }
            return buffer[pos++];
        } read {
            if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            }
            return buffer[pos++];
        } if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            } pos >= readLen pos readLen {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            } pos = 0 pos 0 try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                } catch (IOException e) {
                    throw new RuntimeException();
                } IOException e {
                    throw new RuntimeException();
                } throw new RuntimeException(); new RuntimeException() {
                    readLen = in.read(buffer);
                } readLen = in.read(buffer) readLen in.read(buffer) in.read in buffer if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                } readLen <= 0 readLen 0 {
                    throw new MyInput.EndOfFileRuntimeException();
                } throw new MyInput.EndOfFileRuntimeException(); new MyInput.EndOfFileRuntimeException() return buffer[pos++]; buffer[pos++] buffer pos++ pos public int nextInt() {
            int len = 0;
            str[len++] = nextChar();
            len = reads(len, isSpace);
            int i = 0;
            int ret = 0;
            if (str[0] == '-') {
                i = 1;
            }
            for (; i < len; i++) ret = ret * 10 + str[i] - '0';
            if (str[0] == '-') {
                ret = -ret;
            }
            return ret;
        } nextInt {
            int len = 0;
            str[len++] = nextChar();
            len = reads(len, isSpace);
            int i = 0;
            int ret = 0;
            if (str[0] == '-') {
                i = 1;
            }
            for (; i < len; i++) ret = ret * 10 + str[i] - '0';
            if (str[0] == '-') {
                ret = -ret;
            }
            return ret;
        } int len = 0; len 0 str[len++] = nextChar() str[len++] str len++ len nextChar() nextChar len = reads(len, isSpace) len reads(len, isSpace) reads len isSpace int i = 0; i 0 int ret = 0; ret 0 if (str[0] == '-') {
                i = 1;
            } str[0] == '-' str[0] str 0 '-' {
                i = 1;
            } i = 1 i 1 for (; i < len; i++) ret = ret * 10 + str[i] - '0'; ; i < len i len i++ i++ i ret = ret * 10 + str[i] - '0'; ret = ret * 10 + str[i] - '0' ret ret * 10 + str[i] - '0' ret * 10 + str[i] ret * 10 ret 10 str[i] str i '0' if (str[0] == '-') {
                ret = -ret;
            } str[0] == '-' str[0] str 0 '-' {
                ret = -ret;
            } ret = -ret ret -ret ret return ret; ret public String nextString() {
        	String ret = new String(nextDChar()).trim();
            return ret;
        } nextString {
        	String ret = new String(nextDChar()).trim();
            return ret;
        } String ret = new String(nextDChar()).trim(); ret new String(nextDChar()).trim() new String(nextDChar()).trim new String(nextDChar()) return ret; ret public char[] nextDChar() {
            int len = 0;
            len = reads(len, isSpace);
            char[] ret = new char[len + 1];
            for (int i=0; i < len; i++)		ret[i] = str[i];
            ret[len] = 0x00;
            return ret;
        } nextDChar {
            int len = 0;
            len = reads(len, isSpace);
            char[] ret = new char[len + 1];
            for (int i=0; i < len; i++)		ret[i] = str[i];
            ret[len] = 0x00;
            return ret;
        } int len = 0; len 0 len = reads(len, isSpace) len reads(len, isSpace) reads len isSpace char[] ret = new char[len + 1]; ret new char[len + 1] len + 1 len 1 for (int i=0; i < len; i++)		ret[i] = str[i]; int i=0; int i=0; i 0 i < len i len i++ i++ i ret[i] = str[i]; ret[i] = str[i] ret[i] ret i str[i] str i ret[len] = 0x00 ret[len] ret len 0x00 return ret; ret public char nextChar() {
            while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            }
        } nextChar {
            while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            }
        } while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            } true {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            } final int c = read(); c read() read if (!isSpace[c]) {
                    return (char) c;
                } !isSpace[c] isSpace[c] isSpace c {
                    return (char) c;
                } return (char) c; (char) c int reads(int len, boolean[] accept) {
            try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            }
            return len;
        } reads {
            try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            }
            return len;
        } try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            } catch (MyInput.EndOfFileRuntimeException e) {
            } MyInput.EndOfFileRuntimeException e {
            } {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                } true {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                } final int c = read(); c read() read if (accept[c]) {
                        break;
                    } accept[c] accept c {
                        break;
                    } break; if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    } str.length == len str.length str str.length len {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    } char[] rep = new char[str.length * 3 / 2]; rep new char[str.length * 3 / 2] str.length * 3 / 2 str.length * 3 str.length str str.length 3 2 System.arraycopy(str, 0, rep, 0, str.length) System.arraycopy System str 0 rep 0 str.length str str.length str = rep str rep str[len++] = (char) c str[len++] str len++ len (char) c return len; len int len len boolean[] accept accept static class EndOfFileRuntimeException extends RuntimeException {
        } EndOfFileRuntimeException RuntimeException public class Main {
	
//	public static Set<String> mem = new HashSet<String>();
//	public static boolean[] mem_1 = new boolean[100];
//	public static boolean[] mem_2 = new boolean[100];
//	public static Set<Integer> mem = new TreeSet<Integer>();
//	public static Map<String, Integer> mem_1= new HashMap<String, Integer>();
//	public static Map<String, Integer> mem_2 = new HashMap<String, Integer>();
	
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        MyInput in = new MyInput(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        
        Solver solver = new Solver();
        solver.solve(1, in, out);
        
        out.close();
    }
    
    // ======================================================================
    static class Solver {
    	
		List<Pair<Integer, Integer>> lP = new ArrayList<Pair<Integer, Integer>>();
		List<Pair<Integer, Integer>> lAns = new ArrayList<Pair<Integer, Integer>>();
		
		int A[] = new int[4];
		
		String calc(int data, int cnt) {
			if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			}
			String ans = "";
			String wk = calc(data + A[cnt], cnt+1);
			if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			}
			return ans;
		}
    	
		public void solve(int testNumber, MyInput in, PrintWriter out) {
			String S = in.nextString();
// 			out.println("[" + S + "]");

			for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		}
    		  		
    		out.println(calc(0, 0));
        }
    }
    // ======================================================================
    static class Pair<K, V> extends AbstractMap.SimpleEntry<K, V> {
        /** serialVersionUID. */
        private static final long serialVersionUID = 6411527075103472113L;

        public Pair(final K key, final V value) {
            super(key, value);
        }
        public String getString() {
            return "[" + getKey() + "] [" + getValue() + "]";
        }
     }    
    static class MyInput {
        private final BufferedReader in;
        private static int pos;
        private static int readLen;
        private static final char[] buffer = new char[1024 * 8];
        private static char[] str = new char[500 * 8 * 2];
        private static boolean[] isDigit = new boolean[256];
        private static boolean[] isSpace = new boolean[256];
        private static boolean[] isLineSep = new boolean[256];
 
        static {
            for (int i = 0; i < 10; i++) {
                isDigit['0' + i] = true;
            }
            isDigit['-'] = true;
            isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true;
            isLineSep['\r'] = isLineSep['\n'] = true;
        }
 
        public MyInput(InputStream is) {
            in = new BufferedReader(new InputStreamReader(is));
        }
 
        public int read() {
            if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            }
            return buffer[pos++];
        }
 
        public int nextInt() {
            int len = 0;
            str[len++] = nextChar();
            len = reads(len, isSpace);
            int i = 0;
            int ret = 0;
            if (str[0] == '-') {
                i = 1;
            }
            for (; i < len; i++) ret = ret * 10 + str[i] - '0';
            if (str[0] == '-') {
                ret = -ret;
            }
            return ret;
        }
 
        public String nextString() {
        	String ret = new String(nextDChar()).trim();
            return ret;
        }
 
        public char[] nextDChar() {
            int len = 0;
            len = reads(len, isSpace);
            char[] ret = new char[len + 1];
            for (int i=0; i < len; i++)		ret[i] = str[i];
            ret[len] = 0x00;
            return ret;
        }
 
        public char nextChar() {
            while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            }
        }
 
        int reads(int len, boolean[] accept) {
            try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            }
            return len;
        }
 
        static class EndOfFileRuntimeException extends RuntimeException {
        }
    }
} public class Main {
	
//	public static Set<String> mem = new HashSet<String>();
//	public static boolean[] mem_1 = new boolean[100];
//	public static boolean[] mem_2 = new boolean[100];
//	public static Set<Integer> mem = new TreeSet<Integer>();
//	public static Map<String, Integer> mem_1= new HashMap<String, Integer>();
//	public static Map<String, Integer> mem_2 = new HashMap<String, Integer>();
	
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        MyInput in = new MyInput(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        
        Solver solver = new Solver();
        solver.solve(1, in, out);
        
        out.close();
    }
    
    // ======================================================================
    static class Solver {
    	
		List<Pair<Integer, Integer>> lP = new ArrayList<Pair<Integer, Integer>>();
		List<Pair<Integer, Integer>> lAns = new ArrayList<Pair<Integer, Integer>>();
		
		int A[] = new int[4];
		
		String calc(int data, int cnt) {
			if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			}
			String ans = "";
			String wk = calc(data + A[cnt], cnt+1);
			if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			}
			return ans;
		}
    	
		public void solve(int testNumber, MyInput in, PrintWriter out) {
			String S = in.nextString();
// 			out.println("[" + S + "]");

			for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		}
    		  		
    		out.println(calc(0, 0));
        }
    }
    // ======================================================================
    static class Pair<K, V> extends AbstractMap.SimpleEntry<K, V> {
        /** serialVersionUID. */
        private static final long serialVersionUID = 6411527075103472113L;

        public Pair(final K key, final V value) {
            super(key, value);
        }
        public String getString() {
            return "[" + getKey() + "] [" + getValue() + "]";
        }
     }    
    static class MyInput {
        private final BufferedReader in;
        private static int pos;
        private static int readLen;
        private static final char[] buffer = new char[1024 * 8];
        private static char[] str = new char[500 * 8 * 2];
        private static boolean[] isDigit = new boolean[256];
        private static boolean[] isSpace = new boolean[256];
        private static boolean[] isLineSep = new boolean[256];
 
        static {
            for (int i = 0; i < 10; i++) {
                isDigit['0' + i] = true;
            }
            isDigit['-'] = true;
            isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true;
            isLineSep['\r'] = isLineSep['\n'] = true;
        }
 
        public MyInput(InputStream is) {
            in = new BufferedReader(new InputStreamReader(is));
        }
 
        public int read() {
            if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            }
            return buffer[pos++];
        }
 
        public int nextInt() {
            int len = 0;
            str[len++] = nextChar();
            len = reads(len, isSpace);
            int i = 0;
            int ret = 0;
            if (str[0] == '-') {
                i = 1;
            }
            for (; i < len; i++) ret = ret * 10 + str[i] - '0';
            if (str[0] == '-') {
                ret = -ret;
            }
            return ret;
        }
 
        public String nextString() {
        	String ret = new String(nextDChar()).trim();
            return ret;
        }
 
        public char[] nextDChar() {
            int len = 0;
            len = reads(len, isSpace);
            char[] ret = new char[len + 1];
            for (int i=0; i < len; i++)		ret[i] = str[i];
            ret[len] = 0x00;
            return ret;
        }
 
        public char nextChar() {
            while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            }
        }
 
        int reads(int len, boolean[] accept) {
            try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            }
            return len;
        }
 
        static class EndOfFileRuntimeException extends RuntimeException {
        }
    }
} Main
import java.io.BufferedReader;

import static java.util.Comparator.*;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.util.AbstractMap;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class Main {
	
//	public static Set<String> mem = new HashSet<String>();
//	public static boolean[] mem_1 = new boolean[100];
//	public static boolean[] mem_2 = new boolean[100];
//	public static Set<Integer> mem = new TreeSet<Integer>();
//	public static Map<String, Integer> mem_1= new HashMap<String, Integer>();
//	public static Map<String, Integer> mem_2 = new HashMap<String, Integer>();
	
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        MyInput in = new MyInput(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        
        Solver solver = new Solver();
        solver.solve(1, in, out);
        
        out.close();
    }
    
    // ======================================================================
    static class Solver {
    	
		List<Pair<Integer, Integer>> lP = new ArrayList<Pair<Integer, Integer>>();
		List<Pair<Integer, Integer>> lAns = new ArrayList<Pair<Integer, Integer>>();
		
		int A[] = new int[4];
		
		String calc(int data, int cnt) {
			if(cnt >= 4) {
				if(data == 7) {
					return "=7";
				} else {
					return null;
				}
			}
			String ans = "";
			String wk = calc(data + A[cnt], cnt+1);
			if(wk != null) {
			    if(cnt == 0) {
				    ans = A[cnt] + wk;   
			    } else {
				    ans = "+" + A[cnt] + wk;   
			    }
			} else {
				wk = calc(data - A[cnt], cnt+1);
				if(wk != null) {
				    if(cnt == 0) {
					    ans = A[cnt] + wk;   
				    } else {
					    ans = "-" + A[cnt] + wk;   
				    }
				} else {
					ans = null;
				}
			}
			return ans;
		}
    	
		public void solve(int testNumber, MyInput in, PrintWriter out) {
			String S = in.nextString();
// 			out.println("[" + S + "]");

			for(int i=0; i < 4; i++) {
//    			out.println("[" + S.substring(i, i+1) + "]");
    			A[i] = Integer.valueOf(S.substring(i, i+1));
    		}
    		  		
    		out.println(calc(0, 0));
        }
    }
    // ======================================================================
    static class Pair<K, V> extends AbstractMap.SimpleEntry<K, V> {
        /** serialVersionUID. */
        private static final long serialVersionUID = 6411527075103472113L;

        public Pair(final K key, final V value) {
            super(key, value);
        }
        public String getString() {
            return "[" + getKey() + "] [" + getValue() + "]";
        }
     }    
    static class MyInput {
        private final BufferedReader in;
        private static int pos;
        private static int readLen;
        private static final char[] buffer = new char[1024 * 8];
        private static char[] str = new char[500 * 8 * 2];
        private static boolean[] isDigit = new boolean[256];
        private static boolean[] isSpace = new boolean[256];
        private static boolean[] isLineSep = new boolean[256];
 
        static {
            for (int i = 0; i < 10; i++) {
                isDigit['0' + i] = true;
            }
            isDigit['-'] = true;
            isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true;
            isLineSep['\r'] = isLineSep['\n'] = true;
        }
 
        public MyInput(InputStream is) {
            in = new BufferedReader(new InputStreamReader(is));
        }
 
        public int read() {
            if (pos >= readLen) {
                pos = 0;
                try {
                    readLen = in.read(buffer);
                } catch (IOException e) {
                    throw new RuntimeException();
                }
                if (readLen <= 0) {
                    throw new MyInput.EndOfFileRuntimeException();
                }
            }
            return buffer[pos++];
        }
 
        public int nextInt() {
            int len = 0;
            str[len++] = nextChar();
            len = reads(len, isSpace);
            int i = 0;
            int ret = 0;
            if (str[0] == '-') {
                i = 1;
            }
            for (; i < len; i++) ret = ret * 10 + str[i] - '0';
            if (str[0] == '-') {
                ret = -ret;
            }
            return ret;
        }
 
        public String nextString() {
        	String ret = new String(nextDChar()).trim();
            return ret;
        }
 
        public char[] nextDChar() {
            int len = 0;
            len = reads(len, isSpace);
            char[] ret = new char[len + 1];
            for (int i=0; i < len; i++)		ret[i] = str[i];
            ret[len] = 0x00;
            return ret;
        }
 
        public char nextChar() {
            while (true) {
                final int c = read();
                if (!isSpace[c]) {
                    return (char) c;
                }
            }
        }
 
        int reads(int len, boolean[] accept) {
            try {
                while (true) {
                    final int c = read();
                    if (accept[c]) {
                        break;
                    }
                    if (str.length == len) {
                        char[] rep = new char[str.length * 3 / 2];
                        System.arraycopy(str, 0, rep, 0, str.length);
                        str = rep;
                    }
                    str[len++] = (char) c;
                }
            } catch (MyInput.EndOfFileRuntimeException e) {
            }
            return len;
        }
 
        static class EndOfFileRuntimeException extends RuntimeException {
        }
    }
}
