human
Solve in Python:
You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. 

Define a pair (u,v) which consists of one element from the first array and one element from the second array.

Find the k pairs (u1,v1),(u2,v2) ...(uk,vk) with the smallest sums.

Example 1:

Given nums1 = [1,7,11], nums2 = [2,4,6],  k = 3

Return: [1,2],[1,4],[1,6]

The first 3 pairs are returned from the sequence:
[1,2],[1,4],[1,6],[7,2],[7,4],[11,2],[7,6],[11,4],[11,6]


Example 2:

Given nums1 = [1,1,2], nums2 = [1,2,3],  k = 2

Return: [1,1],[1,1]

The first 2 pairs are returned from the sequence:
[1,1],[1,1],[1,2],[2,1],[1,2],[2,2],[1,3],[1,3],[2,3]


Example 3:

Given nums1 = [1,2], nums2 = [3],  k = 3 

Return: [1,3],[2,3]

All possible pairs are returned from the sequence:
[1,3],[2,3]


Credits:Special thanks to @elmirap and @StefanPochmann for adding this problem and creating all test cases.

Write me a Python program to find the k pairs (u1,v1),(u2,v2)?
assistant
#Here is Python program to find the k pairs (u1,v1),(u2,v2) .

class Solution:
     def kSmallestPairs(self, nums1, nums2, k):
         """
         :type nums1: List[int]
         :type nums2: List[int]
         :type k: int
         :rtype: List[List[int]]
         """
         #heap based solution
         #visualize as a matrix
         #best possible solution will be first row or first column
         #O(2K + Klog2K) time; O(1) time
         
         if not nums1 or not nums2:
             return []
         
         queue = [(nums1[0]+nums2[0],0,0)]
         ans = []
         while queue and len(ans) < k:
             _, i, j = heapq.heappop(queue)
             ans.append([nums1[i],nums2[j]])            
             if j+1 < len(nums2): #smallest values #row-wise
                 heapq.heappush(queue, (nums1[i]+nums2[j+1],i,j+1))                
             if j == 0 and i+1 < len(nums1): #smallest values #column-wise #takes care of row traversal                     
                 heapq.heappush(queue, (nums1[i+1]+nums2[j],i+1,j))                                           
         return ans