// Arup Guha
// 2/2/2015
// Solution to 2014 MCPC Problem A: (More) Multiplication

import java.util.*;

public class a {

	public static char[][] grid;
	public static int H;
	public static int W;

	public static void main(String[] args) {

		Scanner stdin = new Scanner(System.in);
		String num1 = stdin.next();
		String num2 = stdin.next();

		// Go through each case.
		while (!num1.equals("0")) {

			// Solve it.
			formGrid(num1, num2);

			// Print it.
			for (int i=0; i<H; i++)
				System.out.println(new String(grid[i]));

			// Get next case.
			num1 = stdin.next();
			num2 = stdin.next();
		}
	}

	public static void formGrid(String num1, String num2) {

		int len1 = num1.length();
		int len2 = num2.length();
		H = len2*4 + 5;
		W = len1*4 + 5;

		// Allocate the space for the grid.
		grid = new char[H][W];

		// Initialize to spaces.
		for (int i=0; i<H; i++)
			Arrays.fill(grid[i], ' ');

		// Place each component, one by one.
		placeOuterBorder();
		placeInnerBorder();
		placeNumbers(num1, num2);
		placeResult(num1, num2);
	}

	public static void placeOuterBorder() {

		// Horizontal
		for (int i=1; i<W-1; i++) {
			grid[0][i] = '-';
			grid[H-1][i] = '-';
		}

		// Vertical
		for (int i=1; i<H-1; i++) {
			grid[i][0] = '|';
			grid[i][W-1] = '|';
		}

		// Corners
		grid[0][0] = '+';
		grid[0][W-1] = '+';
		grid[H-1][0] = '+';
		grid[H-1][W-1] = '+';
	}

	public static void placeInnerBorder() {

		// Horizontal
		for (int i=2; i<H-2; i+=4)
			for (int j=2; j<W-2; j++)
				grid[i][j] = '-';

		// Vertical
		for (int j=2; j<W-2; j+=4)
			for (int i=2; i<H-2; i++)
				grid[i][j] = '|';

		// Plusses.
		for (int i=2; i<H; i+=4)
			for (int j=2; j<W; j+=4)
				grid[i][j] = '+';
	}

	public static void placeNumbers(String num1, String num2) {

		// Place num1.
		for (int i=4; i<W-4; i+=4)
			grid[1][i] = num1.charAt((i-4)/4);

		// Place num2.
		for (int i=4; i<H-4; i+=4)
			grid[i][W-2] = num2.charAt((i-4)/4);

		// Place digits.
		for (int i=3; i<H-4; i+=4) {
			for (int j=3; j<W-4; j+=4) {
				int d1 = num1.charAt((j-3)/4) - '0';
				int d2 = num2.charAt((i-3)/4) - '0';
				int tens = (d1*d2)/10;
				int ones = (d1*d2)%10;
				grid[i][j] = (char)('0'+tens);
				grid[i][j+2] = '/';
				grid[i+1][j+1] = '/';
				grid[i+2][j] = '/';
				grid[i+2][j+2] = (char)('0'+ones);

			}
		}
	}

	public static void placeResult(String num1, String num2) {

		// Get result.
		int op1 = Integer.parseInt(num1);
		int op2 = Integer.parseInt(num2);
		int res = op1*op2;

		// Place digits on bottom row.
		for (int i=W-6; i>0; i-=4) {
			grid[H-2][i] = (char)('0'+res%10);
			if (res >= 10) grid[H-2][i-2] = '/';
			res /= 10;
		}

		// Place the rest of the digits.
		for (int i=H-4; i>4; i-=4) {
			if (res == 0) break;
			grid[i][1] = (char)('0'+res%10);
			if (res >= 10) grid[i-2][1] = '/';
			res /= 10;
		}
	}
}