i can solve this in O(N*LogK), here N is the total number of numbers in the k lists.
1, maintain a pointer for each list, starting from 0.
2, regard current pointers as the numbers you choose, update the answer.
3, select the one with minimum number and increase it by one(as long as it didn't reach the end of that list), if possible, back to step 2, otherwise terminate.
in step 2, and step 3, use heap to maintain the minimum number and maximum, which reduce the time from O(K) to O(LogK).