m = gets.to_i as = (1..m).map { gets.chomp } n = gets.to_i bs = (1..n).map { gets.chomp } adic = {} bdic = {} as.each { |a| adic[a[0]] = a } bs.each { |b| bdic[b[0]] = b } ('A'..'Z').each do |head| next unless adic[head] next unless bdic[head] abuf = adic[head] bbuf = bdic[head] aused = 1 while abuf.size != bbuf.size if abuf.size > bbuf.size head = abuf[bbuf.size] bbuf += bdic[head] else head = bbuf[abuf.size] abuf += adic[head] aused += 1 end end next if abuf != bbuf if aused < m p -1 break end puts abuf break end