#include #include #include #include using namespace std; string itos(int p){ char buffer[100]; sprintf(buffer, "%d", p); return string(buffer); } string f(int p){ if(p == 1){return "";} return itos(p); } string q(int p){ string ret; if(p >= 1000){ ret = f(p / 1000) + "m"; } p %= 1000; if(p >= 100){ ret = ret + f(p / 100) + "c"; } p %= 100; if(p >= 10){ ret = ret + f(p / 10) + "x"; } p %= 10; if(p >= 1){ ret = ret + f(p) + "i"; } return ret; } int p(string & s){ int sum = 0; int t[256]; t['c'] = 100; t['x'] = 10; t['m'] = 1000; t['i'] = 1; for(int i = 0; i < s.size(); i++){ if(isdigit(s[i])){ sum += (s[i] - '0') * t[s[i + 1]]; i++; }else{ sum += t[s[i]]; } } return sum; } int main(){ int n; cin >> n; for(int i = 0; i < n; i++){ string s1, s2; cin >> s1 >> s2; //cout << s1 << ' ' << s2 << endl; //cout << p(s1) << ' ' << p(s2) << endl; cout << q(p(s1) + p(s2)) << endl;; } }