/* * 開始 2005/11/11 20:38 */ import java.util.Scanner; public class _05C { public static int conv(String s) { int ans = 0, tmp = 1; char[] ch = s.toCharArray(); for(int i = 0; i < ch.length; i++) { if(ch[i] == 'm') { ans += tmp * 1000; tmp = 1; } else if(ch[i] == 'c') { ans += tmp * 100; tmp = 1; } else if(ch[i] == 'x') { ans += tmp * 10; tmp = 1; } else if(ch[i] == 'i') { ans += tmp * 1; tmp = 1; } else { tmp = ch[i] - '0'; } } return ans; } public static String reconv(int n) { String ans = ""; char[] ch={'i', 'x', 'c', 'm'}; int index = 0; while(n > 0) { int tmp = n % 10; if(tmp > 1) { ans = Integer.toString(tmp) + ch[index] + ans; } else if(tmp == 1) { ans = ch[index] + ans; } n /= 10; index++; } return ans; } public static void main(String[] args) { int loop; Scanner sc = new Scanner(System.in); loop = sc.nextInt(); while(loop-- != 0) { String str1 = sc.next(); String str2 = sc.next(); System.out.println(reconv(conv(str1) + conv(str2))); } } } /* * 終了 2005/11/11 21:00 * * 答えが出たー。と思ったらreconv()も要ることに気づく。 * Outputくらいはよく見ましょうね! * */