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: nk = list(map(int, input().split()))
  n = nk[0]
  k = nk[1]
  
  a = list(map(int, input().split()))
  
  a_posi = []
  a_nega = []
  a_zero = []
  
  for aa in a:
      if aa > 0:
          a_posi.append(aa)
      elif aa == 0:
          a_zero.append(aa)
      else:
          a_nega.append(aa)
  
  a_posi.sort()
  a_nega.sort()
  
  num_a_posi = len(a_posi)
  num_a_nega = len(a_nega)
  num_a_zero = len(a_zero)
  
  
  def combination(n):
      return n * (n - 1) / 2
  
  
  num_posi_result = combination(num_a_posi) + combination(num_a_nega)
  num_nega_result = num_a_posi * num_a_nega
  num_zero_result = combination(n) - num_posi_result - num_nega_result
  
  nega_posi = 0
  
  if k <= num_nega_result:
      nega_posi = -1
  else:
      k -= num_nega_result
      if k <= num_zero_result:
          nega_posi = 0
      else:
          k -= num_zero_result
          nega_posi = 1
  
  target_list = []
  if nega_posi == -1:
      for ap in a_posi:
          target_list_ = []
          for an in a_nega:
              target_list_.append(ap * an)
          target_list.append(target_list_)
  elif nega_posi == 0:
      target_list.append(0)
  else:
      for i in range(len(a_posi)):
          target_list_ = []
          for j in range(i + 1, len(a_posi)):
              target_list_.append(a_posi[i] * a_posi[j])
          target_list.append(target_list_)
  
      for i in range(len(a_nega)):
          target_list_ = []
          for j in range(i + 1, len(a_nega)):
              target_list.append(a_nega[i] * a_nega[j])
          target_list.append(target_list_)
  
  
  index = 0
  r = 0
  while index < k:
      b = [x[0] for x in target_list]
      min_index = b.index(min(b))
      r = min(b)
  
      target_list[min_index].pop(0)
  
      index += 1
  
  print(r)
  
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"}]