#include<bits/stdc++.h>
using namespace std;
int wei[17]={65536,32768,16384,8192,4096,2048,1024,512,256,128,64,32,16,8,4,2,1},na,nb,wa[17],wb[17],naa,nbb,l,r,reca,recb,maxa,maxb,le,g,ans;
bool aa[17],bb[17];
string a,b,c,swei[17]={"|||||| nnn 99999 88888 rrrrrr","|||||||| nnnnnn 9999999 88 rrr","|||| nnnnnnnn 999 888888 r","|| nnnnnnnnn 9 88888888","|||||| nnnnnnnnn 8888","|||||||| nnnn 88","|||| nn 8","|| n 99999","|||||| nnnnn 99","|||||||| nn 9","|||| nnnnnn","|| nnn","|||||| n","||||||||","||||","||","|"};
char p[6]={' ','|','n','9','8','r'};
int main(){
while(getline(cin,a)&&getline(cin,b)){
na=0,nb=0;
l=0,r=0;
maxa=0,maxb=0;
memset(aa,0,sizeof aa);
memset(bb,0,sizeof bb);
for(int i=0;i<a.size();i++){
if(a[i]=='|') na+=1;
if(a[i]=='n') na+=10;
if(a[i]=='9') na+=100;
if(a[i]=='8') na+=1000;
if(a[i]=='r') na+=10000;
}
for(int i=0;i<b.size();i++){
if(b[i]=='|') nb+=1;
if(b[i]=='n') nb+=10;
if(b[i]=='9') nb+=100;
if(b[i]=='8') nb+=1000;
if(b[i]=='r') nb+=10000;
}
if(na>=nb){
swap(na,nb);
c=a;
b=c;
a=b;
}
naa=na,nbb=nb;
for(int i=0;i<17;i++){
if(naa>=wei[i]){
wa[++l]=wei[i];
aa[i]=1;
if(!maxa) maxa=i;
naa-=wei[i];
}
if(nbb>=wei[i]){
wb[++r]=wei[i];
bb[i]=1;
if(!maxb) maxb=i;
nbb-=wei[i];
}
if(naa==0) break;
}
for(int i=16;i>=maxa;i--){
reca=swei[i].size();
cout<<swei[i];
if(aa[i]){
cout<<" *";
reca+=2;
}
for(int j=reca+1;j<=34;j++) cout<<" ";
if(i<16) nb*=2;
g=nb;
le=0;
recb=0;
while(g){
le++;
for(int j=1;j<=g%10;j++){
cout<<p[le];
recb++;
}
if(g%10) cout<<" ";
recb++;
g/=10;
}
cout<<endl;
if(aa[i]) ans+=nb;
}
cout<<"The solution is: ";
le=0;
while(ans){
le++;
for(int j=1;j<=ans%10;j++){
cout<<p[le];
}
if(ans%10) cout<<" ";
ans/=10;
}
cout<<endl;
}
}