#include <bits/stdc++.h>
using namespace std;
const int SZ = 100000;
int x[SZ], f[SZ], sum[SZ], origin[SZ];
int main(void) {
  int n, i, N = 0, last = -2000000000, temp, begin, end, mid, idx, first,
            second;
  long long k, tillnow, st;
  scanf("%d %I64d", &n, &k);
  for (i = 0; i < n; ++i) scanf("%d", x + i);
  sort(x, x + n);
  for (i = 0; i < n; ++i) {
    temp = x[i];
    x[i] = (temp ^ last) ? N++ : x[i - 1];
    last = temp;
    ++f[x[i]];
    origin[x[i]] = temp;
  }
  sum[0] = f[0];
  for (i = 1; i < N; ++i) sum[i] = sum[i - 1] + f[i];
  begin = 0, end = N - 1;
  while (begin <= end) {
    mid = (begin + end) / 2;
    tillnow = ((long long)sum[mid]) * ((long long)n);
    if (k <= tillnow) {
      idx = mid;
      end = mid - 1;
    } else
      begin = mid + 1;
  }
  first = idx;
  tillnow = ((long long)sum[idx]) * ((long long)n);
  st = tillnow - ((long long)f[idx]) * ((long long)n);
  begin = 0, end = N - 1;
  while (begin <= end) {
    mid = (begin + end) / 2;
    tillnow = ((long long)f[first]) * ((long long)sum[mid]);
    if (st + tillnow >= k) {
      idx = mid;
      end = mid - 1;
    } else
      begin = mid + 1;
  }
  second = idx;
  printf("%d %d\n", origin[first], origin[second]);
  return 0;
}
