#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);
  vector<int> v;
  int x = 0;
  for (int i = 0; i < n; ++i) {
    st.insert(p[i].second);
    int cnt = 0;
    for (auto it = st.begin(); it != st.end(); ++it) {
      auto it2 = it;
      it2++;
      if (it2 == st.end()) break;
      cnt += max(0, *it2 - *it - k);
    }
    st.erase(p[i].second);
    if (cnt >= q) {
      res = min(res, p[q + x].first - p[x + 1].first);
    } else
      break;
    if (i == n - 1) break;
    v.push_back(p[i].second);
    if (p[i].first < p[i + 1].first) {
      for (int j = 0; j < v.size(); ++j) {
        x++;
        st.insert(v[j]);
      }
      v.clear();
    }
  }
  cout << res << "\n";
  return 0;
}
