#include <bits/stdc++.h>
using namespace std;
int n, k, a, m, d, x, l1, l2;
int calc(int l, int r) { return (r - l + 2) / (a + 1); }
int main() {
  ios::sync_with_stdio(false);
  int l, r, i;
  set<pair<int, int> > s;
  cin >> n >> k >> a;
  d = calc(1, n);
  s.insert(make_pair(n, 1));
  cin >> m;
  for (i = 0; i < m; i++) {
    cin >> x;
    set<pair<int, int> >::iterator it = s.lower_bound(make_pair(x, -1));
    l = it->second;
    r = it->first;
    l1 = 0, l2 = 0;
    if (x - 1 >= l) l1 = calc(l, x - 1);
    if (x + 1 <= r) l2 = calc(x + 1, r);
    d -= calc(l, r);
    d += l1 + l2;
    if (d < k) {
      cout << i + 1;
      return 0;
    }
    s.erase(it);
    if (x - 1 >= l) s.insert(make_pair(x - 1, l));
    if (x + 1 <= r) s.insert(make_pair(r, x + 1));
  }
  cout << -1;
  return 0;
}
