#include <stdio.h>
#include <string.h>
typedef struct{
	int x,y;
}result;


result cal(char a[]){   //没有考虑一个是小数,一个是整数这种情况 
	int i,j;
	result tmp;
	
	for(i=0;a[i] != '.';i++);
	  tmp.x = i;
	
	for(j=i+1;a[j] != 'd'; j++);
	   tmp.y = j-i-2;
	
	return tmp;
}

void print(int x){
	int i;
	for(i=1;i<=x;i++)
	{
		printf(" ");
	}
}


int main()
{
	int zheng,xiao,zong;
	int ax,ay,aright,bleft,bright;
	int bx,by,aleft;
	char a[1007],b[1007];
	memset(a,'d',sizeof(a));
	memset(b,'d',sizeof(b));
    int i,j;
	scanf("%s%s",&a,&b);

	ax=cal(a).x;  //printf("%d",ax);
	ay=cal(a).y;  //printf("%d",ay);
	bx=cal(b).x;  //printf("%d",bx);
	by=cal(b).y;  //printf("%d",by);
	zheng = ax>bx? ax:bx;
	xiao = ay>by? ay:by;
	zong = zheng + xiao + 4;
	
	
	
	aleft=zong-ax-xiao-1;
	aright=xiao-ay;
	bleft=zong-xiao-bx-2;
	bright=xiao-by;
	
	print(aleft);
	printf("%s",a);
	print(aright);
	printf("\n");
	
	printf("+");
	print(bleft);
	printf("%s",b);
	print(bright);
	printf("\n");
	
	
	for(i=1;i<=zong;i++)
	  printf("-");
	printf("\n");
	
	
	printf("   3.01\n"); 
	
	
	
	
//	for(i=0;a[i] != '.';i++);
//	  printf("%d\n",i);
//	
//	for(j=i+1;a[j] != 'd'; j++);
//	   printf("%d",j-i-2);
	
	return 0;
	
}