def scan; gets.split.map(&:to_i); end def sayno puts "-1";exit end #u = ['I','II','III','IV','V','VI','VII'] ac = {} z = {} gets.to_i.times{ s = gets.chomp s.chars{|c| z[c]=0} (s.size-1).times{|i| ac[s[i]] = s[i+1] z[s[i+1]] = 1 } } gets.to_i.times{ s = gets.chomp # s.chars{|c| z[c]=0} (s.size-1).times{|i| sayno if ac[s[i]] && ac[s[i]] != s[i+1] ac[s[i]] = s[i+1] z[s[i+1]] = 1 } } start = nil z.each{|k,v| if v==0 sayno if start start = k end } sayno if !start str = start while ac[start] start = ac[start] str+=start end sayno if z.size != str.size puts str