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())
  lis = list(map(int, input().split()))
  lis = sorted(lis)
  
  
  def find_nega(k, nega, posi):
      resu = [0] * (len(nega) * (len(posi)))
      a = 0
      for i in nega:
          for j in posi:
              resu[a] = i * j
              a += 1
  
      resu = sorted(resu)
      return resu[k - 1]
  
  
  def find_posi(k, nega, posi):
      resu = [0] * (len(posi) * (len(posi) - 1) // 2 + len(nega) * (len(nega) - 1) // 2)
      a = 0
      for i in range(len(posi)):
          for j in range(i + 1, len(posi)):
              resu[a] = posi[i] * posi[j]
              a += 1
  
      for i in range(len(nega)):
          for j in range(i + 1, len(nega)):
              resu[a] = nega[i] * nega[j]
              a += 1
      resu = sorted(resu)
  
      return resu[k - 1]
  
  
  flag = -1
  
  nega_point = 0
  posi_point = N
  for i in range(len(lis)):
      if lis[i] >= 0 and flag == -1:
          nega_point = i
          flag = -2
      if lis[i] >= 1 and flag < 0:
          posi_point = i
          flag = 1
          break
  nega = lis[0:nega_point]
  zero = lis[nega_point:posi_point]
  posi = lis[posi_point:N]
  
  nega_num = len(nega) * len(posi)
  zero_num = (len(nega) + len(posi)) * len(zero) + len(zero) * (len(zero) - 1) // 2
  posi_num = len(posi) * (len(posi) - 1) // 2 + len(nega) * (len(nega) - 1) // 2
  
  if K <= nega_num:
      result = find_nega(K, nega, posi)
  elif K <= nega_num + zero_num:
      result = 0
  else:
      result = find_posi(K - nega_num - zero_num, nega, posi)
  print(result)
  
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"}]