output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N K
      A_1 A_2 \dots A_N
attempt: import sys
  
  N, K = map(int, sys.stdin.readline().split())
  A = tuple(map(int, sys.stdin.readline().split()))
  
  UnderZeroA = tuple([a for a in A if a < 0])
  ZeroA = tuple([a for a in A if a == 0])
  OverZeroA = tuple([a for a in A if a > 0])
  
  L_UnderZeroA = len(UnderZeroA)
  L_ZeroA = len(ZeroA)
  L_OverZeroA = len(OverZeroA)
  
  L_UnderZero = L_UnderZeroA * L_OverZeroA
  L_Zero = L_ZeroA * (L_UnderZeroA + L_OverZeroA) + L_ZeroA * (L_ZeroA - 1) // 2
  L_OverZero = N * (N - 1) // 2 - L_UnderZero - L_Zero
  
  if K < L_UnderZero:
      arr = [None] * (L_UnderZeroA * L_OverZeroA)
      for i, u in enumerate(UnderZeroA):
          for j, o in enumerate(OverZeroA):
              arr[i * L_OverZeroA + j] = u * o
      arr.sort()
      print(arr[K - 1])
  elif K > L_UnderZero + L_Zero:
      arr1 = [None] * (L_UnderZeroA * (L_UnderZeroA - 1) // 2)
      arr2 = [None] * (L_OverZeroA * (L_OverZeroA - 1) // 2)
      if L_UnderZeroA > 0:
          for i in range(L_UnderZeroA - 1):
              for j in range(i + 1, L_UnderZeroA):
                  arr1[i * (L_UnderZeroA - 1) + (j - i - 1) - (i - 1) * i // 2] = (
                      UnderZeroA[i] * UnderZeroA[j]
                  )
      if L_OverZeroA > 0:
          for i in range(L_OverZeroA - 1):
              for j in range(i + 1, L_OverZeroA):
                  arr2[i * (L_OverZeroA - 1) + (j - i - 1) - (i - 1) * i // 2] = (
                      OverZeroA[i] * OverZeroA[j]
                  )
      arr = arr1 + arr2
      arr.sort()
      index = K - L_UnderZero - L_Zero
      print(arr[index - 1])
  else:
      print(0)
  
problem_description: Statement
  
  We have N integers A_1, A_2, ..., A_N.
  
  There are \frac{N(N-1)}{2} ways to choose two of them and form a pair. If we
  compute the product of each of those pairs and sort the results in ascending
  order, what will be the K-th number in that list?
samples: [{"input": "4 3\n    3 3 -4 -2", "output": "-6\n    \n\nThere are six ways to form a pair. The products of those pairs are 9, -12, -6,\n-12, -6, 8.\n\nSorting those numbers in ascending order, we have -12, -12, -6, -6, 8, 9. The\nthird number in this list is -6.\n\n* * *"}, {"input": "10 40\n    5 4 3 2 -1 0 0 0 0 0", "output": "6\n    \n\n* * *"}, {"input": "30 413\n    -170202098 -268409015 537203564 983211703 21608710 -443999067 -937727165 -97596546 -372334013 398994917 -972141167 798607104 -949068442 -959948616 37909651 0 886627544 -20098238 0 -948955241 0 -214720580 277222296 -18897162 834475626 0 -425610555 110117526 663621752 0", "output": "448283280358331064"}]