network().let { network -> network.map { (first, connected) -> buildSet { val visited = mutableSetOf() for (sub in connected) { add((setOf(first, sub) + buildSet { for (next in connected - visited) { if (all { next in network[it].orEmpty() }) add(next) } }).also { visited += it }) } } }.flatten().maxBy { it.size }.joinToString(",")