object Pathos {
val firsts =
"авто,агро,апо,арахно,аристо,астро,аэро,био,бюро,вело,гастро,гео,гербо,геронто,герпето,гетеро,гидро,гипер,гипно,гомео,гомо,графо,демо,дендро,зоо,изо,ихтио,како,квази,клепто,крипто,мегало,метро,микро,моно,мото,невро,нейтро,некро,неонато,нимфо,олиго,опто,орто,орфо,охло,панто,пара,пато,парто,педо,пиро,плуто,поли,прото,психо,птеро,ретро,тео,топо,физио,фило,фито,фото,шизо,экзо,эко,эндо,энцефало,эпи".split(",").toList
val seconds = "арх,граф,крат,лог,ман,мах,метр,ном,пат,пед,соф,тон,топ,фил,фоб,фон,френ".split(",").toList
val isEndVowel = "аеоуэюя".toSet
val isVowel = "аеиоуэюя".toSet
def word(first: String, second: String) =
if (isVowel(second.head) && isEndVowel(first.last))
first.dropRight(1) + second else first + second
val header =
s"<td/>${seconds map (w => s"<th> $w </th>") mkString ""}"
def row(f: String) =
s"<th aligh=left> $f </th>${seconds map (s => s"<td style='text-align:center'> ${word(f,s)}ия </td>") mkString ""}"
val content = (header :: (firsts map row)).mkString("<tr>", "</tr>\n<tr>", "</tr>\n")
def main(args: Array[String]): Unit = {
println(s"<table>$content</table>")
println("<br/>")
println(firsts map(f => s"${f}сексуализм") mkString(", "))
}
}