#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k, q, ans = 1000000007;
  set<int> st;
  bool can[2005];
  fill(can, can + 2005, true);
  pair<int, int> a[2005];
  scanf("%d%d%d", &n, &k, &q);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i].first);
    a[i].second = i;
  }
  sort(a, a + n);
  st.insert(-1);
  st.insert(n);
  for (int i = 0; i <= n - q; i++) {
    auto r = st.lower_bound(a[i].second);
    auto l = --r;
    r++;
    int limitl = a[i].second - *l - 1 - k;
    int limitr = *r - a[i].second - 1 - k;
    st.insert(a[i].second);
    int t = 0;
    for (int j = i; j < n; j++) {
      if (can[j]) t++;
      if (can[j] && t == q) {
        ans = min(ans, a[j].first - a[i].first);
      }
      if (*l < a[j].second && a[j].second < a[i].second) {
        if (limitl > 0)
          limitl--;
        else
          can[j] = false;
      }
      if (a[i].second < a[j].second && a[j].second < *r) {
        if (limitr > 0)
          limitr--;
        else
          can[j] = false;
      }
    }
  }
  printf("%d", ans);
}
