Numpy Solution - Least Runtime Solution
\nimport numpy as np\nclass Solution:\n    def kthSmallestProduct(self, nums1: List[int], nums2: List[int], k: int) -> int:\n        A = np.sort(nums1)\n       
```\nimport numpy as np\nclass Solution:\n    def kthSmallestProduct(self, nums1: List[int], nums2: List[int], k: int) -> int:\n        A = np.sort(nums1)\n        B = np.sort(nums2)\n        Aneg, Azero, Apos = A[A < 0], A[A == 0], A[A > 0]\n\n        def f(x):\n            # Count number of a * b <= x, casing on the sign of a\n            countZero = len(Azero) * len(B) if x >= 0 else 0\n            countPos = np.searchsorted(B, x // Apos, side="right").sum()\n            countNeg = len(Aneg) * len(B) - np.searchsorted(B, (-x - 1) // (-Aneg), side="right").sum()\n            return countNeg + countZero + countPos\n\n        lo = -(10 ** 10)\n        hi = 10 ** 10\n        while lo < hi:\n            mid = (lo + hi) // 2\n            if f(mid) >= k:\n                hi = mid\n            else:\n                lo = mid + 1\n        return hi\n    \n#         A, B = nums1, nums2\n#         n, m = len(A), len(B)\n#         A1,A2 = [-a for a in A if a < 0][::-1], [a for a in A if a >= 0]\n#         B1,B2 = [-a for a in B if a < 0][::-1], [a for a in B if a >= 0]\n\n#         neg = len(A1) * len(B2) + len(A2) * len(B1)\n#         if k > neg:\n#             k -= neg\n#             s = 1\n#         else:\n#             k = neg - k + 1\n#             B1, B2 = B2,B1\n#             s = -1\n\n#         def count(A, B, x):\n#             res = 0\n#             j = len(B) - 1\n#             for i in range(len(A)):\n#                 while j >= 0 and A[i] * B[j] > x:\n#                     j -= 1\n#                 res += j + 1\n#             return res\n\n#         left, right = 0, 10**10\n#         while left < right:\n#             mid = (left + right) // 2\n#             if count(A1, B1, mid) + count(A2, B2, mid) >= k:\n#                 right = mid\n#             else:\n#                 left = mid + 1\n#         return left * s\n```
['Python']