Golang solution using priority queue

First, fetch all 0 th elements of each array in matrix and initialize priority queue, whose priority is a value in matrix.
Then we can run heap.Pop one by one. And after every call of Pop, if popped element is matrix[i][j] add matrix[i][j+1] to the priority queue. By doing so, we can ensure always [elements in priority queue] < [elements remaining in matrix],
therefore k th popped element is what we want.