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: from scipy.misc import comb
  
  N, K = (int(x) for x in input().split(" "))
  A = [int(x) for x in input().split(" ")]
  
  
  def mlDevelopment(PL, ML):
      ret = []
      for i in PL:
          for j in ML:
              ret += [i * j]
      return sorted(ret)
  
  
  def plDevelopment(PL, ML):
      ret = []
      # 正の数同士の積
      if len(PL) > 1:
          for i in range(0, len(PL) - 1):
              for j in range(i + 1, len(PL)):
                  ret += [PL[i] * PL[j]]
      else:
          ret += PL
  
      # 負の数同士の積
      if len(ML) > 1:
          for i in range(0, len(ML) - 1):
              for j in range(i + 1, len(ML)):
                  ret += [ML[i] * ML[j]]
      else:
          ret += ML
  
      return sorted(ret)
  
  
  # Aの中身を、正の数・負の数・マイナスに分けて再格納
  PL = []
  ML = []
  ZL = []
  for row in A:
      if row == 0:
          ZL = ZL + [0]
      elif row > 0:
          PL = PL + [row]
      else:
          ML = ML + [row]
  
  # 「負の数」「ゼロ」「正の数」と並ぶのでそれぞれの要素数を求める。
  PC = comb(len(PL), 2, exact=True) + comb(len(ML), 2, exact=True)
  MC = len(PL) * len(ML)
  ZC = len(PL) * len(ZL) + len(ML) * len(ZL) + comb(len(ZL), 2, exact=True)
  # 探索値の所属する場所を特定する
  posi = 0
  tgls = []
  if MC > K:
      # print('マイナス値')
      tglc = mlDevelopment(PL, ML)
      ans = tglc[K - 1]
  else:
      if MC + ZC > K:
          # print('ゼロ')
          ans = 0
      else:
          # print('プラス値')
          tglc = plDevelopment(PL, ML)
          ans = tglc[K - (MC + ZC + PC) - 1]
  
  print(ans)
  
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"}]