#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2050;
int n, k, qn;
int a[MAXN];
int b[MAXN];
int ans = 1000 * 1000 * 1000;
bool ok(int mn, int mx) {
  int can = 0;
  set<pair<int, int> > st;
  set<int> st2;
  for (int i = 0; i < n; i++) {
    if (a[i] < mn) {
      st.clear();
      st2.clear();
      continue;
    }
    if ((int)st.size() == k) {
      int idx = *st2.begin();
      st2.erase(st2.begin());
      st.erase({a[idx], idx});
    }
    st.insert({a[i], i});
    st2.insert(i);
    if ((int)st.size() == k && (*(st.begin())).first <= mx) {
      can++;
      st2.erase((*st.begin()).second);
      st.erase(st.begin());
    }
  }
  return can >= qn;
}
int main() {
  scanf("%d %d %d", &n, &k, &qn);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    b[i] = a[i];
  }
  sort(b, b + n);
  for (int i = 0; i < n; i++) {
    int mn = b[i];
    int l = i, r = n - 1;
    while (l < r) {
      int mid = (l + r) / 2;
      int mx = b[mid];
      if (ok(mn, mx)) {
        r = mid;
      } else {
        l = mid + 1;
      }
    }
    if (ok(mn, b[l])) {
      ans = min(ans, b[l] - mn);
    }
  }
  cout << ans << endl;
  return 0;
}
