#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, k, a, s, p, c, d, y, t;
  cin >> n;
  cin >> k;
  cin >> a;
  map<int, int> x;
  x[n + 1] = 0;
  s = n / (a + 1);
  if (n % (a + 1) == a) s++;
  cin >> m;
  x[0] = s;
  for (int i = 0; i < m; i++) {
    cin >> p;
    x[p] = 0;
    c = (--x.find(p))->first;
    d = (++x.find(p))->first;
    s -= x[c];
    t = p - c - 1;
    y = t / (a + 1);
    if (t % (a + 1) == a) y++;
    s += y;
    x[c] = y;
    t = d - p - 1;
    y = t / (a + 1);
    if (t % (a + 1) == a) y++;
    s += y;
    x[p] = y;
    if (s < k) {
      cout << i + 1;
      return 0;
    }
  }
  cout << -1;
  return 0;
}
