#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
ifstream fin( "multiply.in" );
bool DEBUG = false;
void printChars(char c, int num2print) {
int i;
for (i=0; i<num2print; i++)
cout << c;
}
void printLine(int numXdig) {
cout << "| ";
cout << "+";
for (int j=0; j < numXdig; j++) {
printChars('-', 3);
cout << "+";
}
cout << " |" << endl;
}
int main() {
int X, Y, i, j, result, numXdigits, numYdigits, numRdigits;
int Xdigits[5], Ydigits[5], Rdigits[10];
bool firstDigitZero;
fin >> X >> Y;
while (X > 0) {
DEBUG && cout << "Got Data -- X: " << X << "\tY: " << Y << endl;
for (i=1, numXdigits=0; i<=X; i*=10) numXdigits++;
for (i=1, numYdigits=0; i<=Y; i*=10) numYdigits++;
for (i=0, j=X; j>0; i++) {
Xdigits[i] = j%10;
j /= 10;
}
for (i=0, j=Y; j>0; i++) {
Ydigits[i] = j%10;
j /= 10;
}
result = X*Y;
for (i=1, numRdigits=0; i<=result; i*=10) numRdigits++;
for (i=0, j=result; j>0; i++) {
Rdigits[i] = j%10;
j /= 10;
}
DEBUG && cout << " Num digits X: " << numXdigits
<< "\tNum digits Y: " << numYdigits
<< "\tNum digits R: " << numRdigits
<< "\tResult: " << result << endl;
cout << "+";
printChars('-', 3+4*numXdigits);
cout << "+" << endl;
cout << "| "; for (i=0; i<numXdigits; i++) {
cout << Xdigits[numXdigits-i-1];
printChars(' ', 3);
}
cout << "|" << endl;
firstDigitZero = false;
printLine(numXdigits);
for (i=numYdigits-1; i>=0; i--) {
int topDigit, botDigit;
if (i==numYdigits-1)
if ( (Xdigits[numXdigits-1]*Ydigits[i]) /10 <= 0 )
firstDigitZero = true;
if (i==numYdigits-1 || (i==numYdigits-2 && firstDigitZero))
cout << "| |";
else
cout << "|/|";
for (j=numXdigits-1; j>=0; j--) {
topDigit = Xdigits[j]*Ydigits[i] / 10;
cout << topDigit << " /|";
}
cout << " |" << endl;
cout << "| |";
for (j=numXdigits-1; j>=0; j--)
cout << " / |";
cout << Ydigits[i] << "|" << endl;
cout << "|";
if ((i == numYdigits-1) && firstDigitZero)
cout << " |";
else
cout << Rdigits[i+numXdigits] << "|";
for (j=numXdigits-1; j>=0; j--) {
botDigit = Xdigits[j]*Ydigits[i] % 10;
cout << "/ " << botDigit << "|";
}
cout << " |" << endl;
printLine(numXdigits);
}
cout << "|"; for (i=0; i<numXdigits; i++) {
if (firstDigitZero && numYdigits == 1) {
cout << " ";
} else {
cout << "/ ";
}
cout << Rdigits[numXdigits-i-1] << " ";
}
cout << " |" << endl;
cout << "+";
printChars('-', 3+4*numXdigits);
cout << "+" << endl;
fin >> X >> Y; }
return 0;
}