$list = []
$words = []
def index_of_list
$words.map do |e1|
ret = nil
$list.map.with_index do |e2, i|
if e2.index(e1)
ret = i
break
end
end
ret
end
end
def words_to_indexes
w = index_of_list.flatten.compact.uniq
if w == []
$list << $words
else
$list[w.min] += $words
$list.delete($list[w.max]) if w.min != w.max
$list.map! do |e|
e.uniq.sort
end
end
end
while w = gets
w = w.chomp
$words = w.split(' ')
words_to_indexes
end
$list.map do |e|
puts e.join(', ')
end
JGxpc3QgPSBbXQokd29yZHMgPSBbXQoKZGVmIGluZGV4X29mX2xpc3QKICAkd29yZHMubWFwIGRvIHxlMXwKICAgIHJldCA9IG5pbAogICAgJGxpc3QubWFwLndpdGhfaW5kZXggZG8gfGUyLCBpfAogICAgICBpZiBlMi5pbmRleChlMSkKICAgICAgICByZXQgPSBpCiAgICAgICAgYnJlYWsKICAgICAgZW5kCiAgICBlbmQKICAgIHJldAogIGVuZAplbmQKCmRlZiB3b3Jkc190b19pbmRleGVzCiAgdyA9IGluZGV4X29mX2xpc3QuZmxhdHRlbi5jb21wYWN0LnVuaXEKICBpZiB3ID09IFtdCiAgICAkbGlzdCA8PCAkd29yZHMKICBlbHNlCiAgICAkbGlzdFt3Lm1pbl0gKz0gJHdvcmRzCiAgICAkbGlzdC5kZWxldGUoJGxpc3Rbdy5tYXhdKSBpZiB3Lm1pbiAhPSB3Lm1heAogICAgJGxpc3QubWFwISBkbyB8ZXwKICAgICAgZS51bmlxLnNvcnQKICAgIGVuZAogIGVuZAplbmQKCndoaWxlIHcgPSBnZXRzCiAgdyA9IHcuY2hvbXAKICAkd29yZHMgPSB3LnNwbGl0KCcgJykKICB3b3Jkc190b19pbmRleGVzCmVuZAoKJGxpc3QubWFwIGRvIHxlfAogIHB1dHMgZS5qb2luKCcsICcpCmVuZAo=
Z29vc2UgcGlnZW9uCmNhdCBkb2cKZWVsIGdvbGRmaXNoCmdvb3NlIGR1Y2sKaG9yc2UgZG9nCmNvZCBlZWwKZG92ZSBwaWdlb24KZG9nIHJoaW5vCmdvbGRmaXNoIHNxdWlkCmdvb3NlIGxhcmsK
goose pigeon
cat dog
eel goldfish
goose duck
horse dog
cod eel
dove pigeon
dog rhino
goldfish squid
goose lark
dove, duck, goose, lark, pigeon
cat, dog, horse, rhino
cod, eel, goldfish, squid