orangy
fun main(args: Array<String>) {
val matrix = listOf(listOf(1, 2), listOf(2, 4, 6), listOf(10, 20, 30, 40))
println(matrix)
val sz = matrix.maxBy { it.size }!!.size
val transposed = (0..sz - 1).map { index -> matrix.mapNotNull { if (index < it.size) it[index] else null } }
println(transposed)
}