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: N, K = map(int, input().split())  # 数字
  A = map(int, input().split())  # 数字
  
  A = sorted(A, reverse=False)
  import bisect
  
  tmp = bisect.bisect_left(A, 0)
  
  C = A[:tmp]  # 負の数
  D = A[tmp:]  # 正の数
  D = D[::-1]
  
  # print(C)
  # print(D)
  
  B = []  # 負の数×正の数
  cou = 0
  E = 0
  for i in range(len(C)):
      if E == 1:
          break
      for j in range(len(D)):
          B.append(C[i] * D[j])
          cou += 1
          if cou == K:
              E = 1
              break
  
  # print(B)
  F = []  # 正数
  cou2 = 0
  G = []  # 負の数
  cou3 = 0
  
  if E == 0:
      D = D[::-1]
      for i in range(len(D)):
          if E == 1:
              break
          for j in range(i + 1, len(D)):
              F.append(D[i] * D[j])
              cou2 += 1
              if cou + cou2 == K:
                  E = 1
                  break
      E = 0
      for i in range(len(C)):
          if E == 1:
              break
          for j in range(i + 1, len(C)):
              G.append(C[i] * C[j])
              cou3 += 1
              if cou + cou3 == K:
                  E = 1
                  break
  
  # print(F)
  # print(G)
  
  B = B + F + G
  B = sorted(B, reverse=False)
  # print(B)
  # print(len(B))
  print(B[K - 1])
  
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"}]