#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int n, m, k, a, x[maxn];
bool ok(int ind) {
  int si = 0, sum = 0;
  vector<int> v;
  v.push_back(-1);
  v.push_back(n);
  for (int i = 0; i <= ind; i++) v.push_back(x[i]);
  sort(v.begin(), v.end());
  for (int i = 1; i < v.size(); i++) {
    si = v[i] - v[i - 1] - 1;
    if (si >= a) {
      sum++;
      si -= a;
      sum += si / (a + 1);
      si = 0;
    }
  }
  if (sum < k) return false;
  return true;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> k >> a >> m;
  for (int i = 0; i < m; i++) cin >> x[i], x[i]--;
  int l = 0, r = m - 1, mid;
  if (ok(r)) {
    cout << -1;
    return 0;
  }
  if (!ok(l)) {
    cout << 1;
    return 0;
  }
  while (r - l > 1) {
    mid = (l + r) / 2;
    if (ok(mid))
      l = mid;
    else
      r = mid;
  }
  cout << r + 1;
  return 0;
}
