#include <bits/stdc++.h>
using namespace std;
int in() {
  int x;
  scanf("%d", &x);
  return x;
}
long long lin() {
  long long x;
  scanf("%lld", &x);
  return x;
}
int main() {
  int n, k, q;
  cin >> n >> k >> q;
  vector<int> a(n);
  vector<pair<int, int> > p(n);
  for (int i = 0; i < n; ++i) {
    a[i] = in();
    p[i] = pair<int, int>(a[i], i);
  }
  sort((p).begin(), (p).end());
  vector<int> non_use(n);
  int ans = 1e9 + 10;
  for (int i = 0; i < n; ++i) {
    multiset<int> st;
    vector<int> tmp;
    for (int j = 0; j < n; ++j) {
      if (non_use[j]) {
        sort((tmp).begin(), (tmp).end());
        for (int x = 0; x < (int)tmp.size() - k + 1; ++x) {
          st.insert(tmp[x]);
        }
        tmp.clear();
      } else {
        tmp.push_back(a[j]);
      }
    }
    sort((tmp).begin(), (tmp).end());
    for (int x = 0; x < (int)tmp.size() - k + 1; ++x) {
      st.insert(tmp[x]);
    }
    if (st.size() >= q) {
      while (st.size() > q) {
        st.erase(*st.rbegin());
      }
      int tmp = *st.rbegin() - *st.begin();
      ans = min(ans, tmp);
    }
    non_use[p[i].second] = 1;
  }
  cout << ans << endl;
  return 0;
}
