import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class next_sm_simple {

	void solve() throws IOException {
		StringTokenizer st = new StringTokenizer(br.readLine(), "=+", true);
		int n = Integer.parseInt(st.nextToken());
		assert 1 <= n && n <= 100000;
		String eq = st.nextToken();
		assert eq.equals("=");
		ArrayList<Integer> part = new ArrayList<Integer>();
		part.add(Integer.parseInt(st.nextToken()));
		while (st.hasMoreTokens()) {
			String plus = st.nextToken();
			assert plus.equals("+");
			part.add(Integer.parseInt(st.nextToken()));
		}
		if (part.size() == 1) {
			out.println("No solution");
			return;
		}
		int sum = 0;
		for (int i : part) {
			sum += i;
		}
		assert sum == n;
		for (int i = 1; i < part.size(); i++) {
			assert part.get(i - 1) <= part.get(i);
		}

		out.print(n + "=");
		for (int j = 0; j < part.size() - 2; j++) {
			out.print(part.get(j) + "+");
		}
		int k = part.get(part.size() - 2) + 1;
		int cur = part.get(part.size() - 1) - 1;
		System.err.println(k + " " + cur);
		if (cur < k) {
			k += cur;
			cur = 0;
		}
		out.print(k);
		if (cur > 0) {
			while (cur >= 2 * k) {
				out.print("+" + k);
				cur -= k;
			}
			out.println("+" + cur);
		} else {
			out.println();
		}
	}

	BufferedReader br;
	PrintWriter out;

	public void run() {
		try {
			br = new BufferedReader(new FileReader("next.in"));
			out = new PrintWriter(new FileWriter("next.out"));
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	public static void main(String[] args) {
		new next_sm_simple().run();
	}
}
