# coding: utf-8
# ?????????(?????????)????????°?????????????????????: BOOL
def integer_string?(str)
  Integer(str)
  true
rescue ArgumentError
  false
end
# mcxi????????????,10?????°??°????????????: INT
def mcxi_to_i(mcxi_s)
  result = 0;
  prefix_num = 1;
  mcxi_array = mcxi_s.split("")
  mcxi_array.each do |s|
    if(integer_string?(s))
      prefix_num = s.to_i
    else
      digit = 0
      case s
      when "m" then
        digit = 1000
      when "c" then
        digit = 100
      when "x" then
        digit = 10
      when "i" then
        digit = 1
      end
      result += prefix_num * digit
      prefix_num = 1
    end
  end
  result
end
# 10?????°?????°?????????mcxi??????????????????
def i_to_mcxi(i)
  str = ""
  digit = 1000
  while digit >= 1 do
    prefix = i / digit
    i -= prefix * digit
    mcxi_digit = ""
    if prefix != 0
      case digit
      when 1000
        mcxi_digit = "m"
      when 100
        mcxi_digit = "c"
      when 10
        mcxi_digit = "x"
      when 1
        mcxi_digit = "i"
      end
      if(prefix == 1)
        str << mcxi_digit
      else
        str << "#{prefix}#{mcxi_digit}"
      end
    end
    digit = digit / 10
  end
  str
end

line = gets
while line = gets do
  mcxi_a,mcxi_b = line.split
  a = mcxi_to_i(mcxi_a)
  b = mcxi_to_i(mcxi_b)
  sum = a + b
  puts i_to_mcxi(sum)
end