#include <stdio.h>
#include <stdlib.h>

#define MAX 2000001

int compare_int(const void *a, const void *b)
{
  	long long int *A = (long long int *)a;
    long long int *B = (long long int *)b;
    if (*A > *B) return 1;
  	if (*A < *B) return -1;
  	return 0;
}

int main(){
  int N,K;
  long long int A[MAX];
  scanf("%d %d",&N,&K);
  for(int i=0; i<N; i++){
    scanf("%lld",&A[i]);
  }
  long long int *B;
  B = (long long int*)malloc(sizeof(long long int)*N*N);
  int cnt = 0;
  for(int i=0; i<N; i++){
    for(int k=i+1; k<N; k++){
      B[cnt] = A[i]*A[k];
      //printf("%d %lld\n",cnt,B[cnt]);
      cnt++;
    }
  }
  qsort(B, cnt, sizeof(long long int), compare_int);
  printf("%lld\n",B[K-1]);
}