#include <bits/stdc++.h>
using namespace std;
int main() {
  vector<long long> v;
  set<long long> myset;
  set<long long>::iterator it;
  long long n, k, q, t;
  map<long long, int> mp;
  cin >> n >> k;
  for (long long i = 0; i < n; i++) {
    scanf("%I64d", &t);
    v.push_back(t);
    myset.insert(t);
    mp[t]++;
  }
  sort(v.begin(), v.end());
  if (v.size() == myset.size()) {
    if (k % n != 0 && n < k) {
      long long m = k / n;
      long long p = m * n;
      long long u = v[m];
      long long x = 0;
      for (long long i = p + 1; i <= k; i++) {
        q = v[x];
        ++x;
      }
      cout << u << " " << q << endl;
      return 0;
    }
    if (k % n == 0 && n <= k) {
      cout << v[(k / n) - 1] << " " << v[n - 1] << endl;
      return 0;
    }
    if (k < n) {
      cout << v[0] << " " << v[k - 1] << endl;
      return 0;
    }
  } else {
    long long sum = 0, b;
    for (it = myset.begin(); it != myset.end(); ++it) {
      sum += (mp[*it] * n);
      if (k <= sum) {
        b = *it;
        sum -= (mp[*it] * n);
        break;
      }
    }
    long long cnt = sum;
    for (long long i = 0; i < n; i++) {
      cnt += mp[b];
      if (cnt >= k) {
        cout << b << " " << v[i] << endl;
        break;
      }
    }
  }
  return 0;
}
