#include <bits/stdc++.h>
using namespace std;
set<int> s;
bool miss[1000000];
int main() {
  int n, k, a;
  cin >> n >> k >> a;
  s.insert(0);
  s.insert(n + 1);
  int cap = (n + 1) / (a + 1);
  int q;
  cin >> q;
  for (int j = 0; j < q; j++) {
    int p;
    cin >> p;
    if (miss[p]) continue;
    int l = *(--s.upper_bound(p));
    int r = *s.upper_bound(p);
    int len = r - l - 1;
    int seg_cap = (len + 1) / (a + 1);
    cap -= seg_cap;
    len = p - l - 1;
    cap += (len + 1) / (a + 1);
    len = r - p - 1;
    cap += (len + 1) / (a + 1);
    s.insert(p);
    miss[p] = true;
    if (cap < k) {
      cout << j + 1;
      return 0;
    }
  }
  cout << -1;
  return 0;
}
