#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k, q;
  cin >> n >> k >> q;
  vector<int> a(n);
  for (int i = 0; i < n; ++i) cin >> a[i];
  vector<pair<int, int>> p(n);
  for (int i = 0; i < n; ++i) p[i] = {a[i], i};
  sort(p.begin(), p.end());
  int res = p[q - 1].first - p[0].first;
  set<int> st;
  st.insert(-1);
  st.insert(n);
  int cnt = n - k + 1;
  for (int i = 0; i < n; ++i) {
    auto it = st.upper_bound(p[i].second);
    int right = *it;
    it--;
    int left = *it;
    cnt -= max(0, right - left - k) - max(0, p[i].second - left - k) -
           max(0, right - p[i].second - k);
    if (cnt >= q) {
      res = min(res, p[q + i].first - p[i + 1].first);
    } else
      break;
  }
  cout << res << "\n";
  return 0;
}
