#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>
#include <sstream>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <numeric>
#include <cmath>
#include <climits>
#include <limits>
#include <cfloat>
#include <fstream>
using namespace std;

string itos5 (int n )
{
	stringstream ss;
	ss << n;
	string res = ss.str();
	int len = res.length();
	int i;

	if (len < 5){
		for (i = 0; i < 5 - len; ++i){
			res = '0' + res;
		} // end for
	} // end if

	return res;
}

int main()
{
	const string pos[8] = {
	"*****     ",
	"     *****",
	"==========",
	" **** ****",
	"* **** ***",
	"** **** **",
	"*** **** *",
	"**** **** "
};
	int i,j,k;

//	cut here before submit 
//	freopen ("testcase.abacus", "r", stdin );
	string str = "";

	vector <vector <string> > R;

	while (getline (cin, str ) ){
		if (str.empty() ){
			break;
		} // end if
		vector <string> res (8, string ( 5, ' ') );
//		vector <string> res (10, string (5, ' ') );
		int n;
		string t = "";
		stringstream ss(str);
		ss >> n;

		t = itos5 (n );

		for (i = 0; i < 5; ++i){
			int m = t[i] - '0';
			for (j = 0; j < 8; ++j){
				res[j][i] = pos[j][m];
			} // end for
		} // end for
		
		R.push_back(res );
		res.clear();

	} // end loop
	int size = R.size();

	for (k = 0; k < size; ++k){
		vector<string>::iterator it = R[k].begin();
		for (; it != R[k].end(); ++it ){
			string str = (*it);
			int len = str.length();

			for (i = 0; i < len; ++i){
				cout << str[i];
			} // end for
			cout << endl;
		} // end for
		if (k != size - 1 ) {
			cout << endl;
		} // end if
	} // end for
	
	return 0;
}