#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int fun(string arry)
{
int index;
int len_arry = arry.size();
int int_arry[arry.size()];
for(index = 0;index < len_arry;index++)
{
switch(arry[index])
{
case 'I': int_arry[index] = 1; break;
case 'V': int_arry[index] = 5; break;
case 'X': int_arry[index] = 10; break;
case 'L': int_arry[index] = 50; break;
case 'C': int_arry[index] = 100; break;
case 'D': int_arry[index] = 500; break;
case 'M': int_arry[index] = 1000; break;
}
}
int num = int_arry[index-1];
for(index =len_arry-1;index > 0;index--)
{
if(int_arry[index-1] >= int_arry[index] )
{
num += int_arry[index-1];
}
else
{
num -= int_arry[index-1];
}
}
return num;
}
string Calculation(const string arry1)
{
int n = arry1.size();
int index;
for(index = 0;arry1[index] != '+'&& arry1[index] != '-';index++)
{
}
const int mark = index;
string a_1(arry1,0,index);
string a_2(arry1,index+1,n);
if(arry1[index]=='+')
{
n =fun(a_1)+fun(a_2);
}
else
{
n = fun(a_1)-fun(a_2);
}
if(n<=4000)
{
string Cuam;
while (n)
{
if (n>=1000)
{
while (n>=1000)
{
Cuam +="M";
n-=1000;
}
}
else if (n>=500)
{
if (n>=900)
{
Cuam += "CM";
n-=900;
}
else
{
Cuam +="D";
n-=500;
}
}
else if (n>=100)
{
if (n>=400)
{
Cuam +="CD";
n-=400;
}
else
{
Cuam +="C";
n-=100;
}
}
else if (n>=50)
{
if (n>=90)
{
Cuam +="XC";
n-=90;
}
else
{
Cuam +="L";
n-=50;
}
}
else if (n>=10)
{
if (n>=40)
{
Cuam +="XL";
n-=40;
}
else
{
Cuam +="X";
n-=10;
}
}
else if (n>=5)
{
if (n>=9)
{
Cuam +="IX";
n-=9;
}
else
{
Cuam +="V";
n-=5;
}
}
else if (n>=1)
{
if (n>=4)
{
Cuam +="IV";
n-=4;
}
else
{
Cuam +="I";
n-=1;
}
}
}
return Cuam;
}
return 0;
}
int main()
{
string arry1;
string showArry[2];
for(int i =0;i< 2;i++)
{
cin>>arry1;
showArry[i] = Calculation(arry1);
}
cout<<showArry[0]<<endl;
cout<<showArry[1]<<endl;
return 0;
}