#include <bits/stdc++.h>
using namespace std;
set<int> s;
set<int>::iterator it;
int n, k, a, now;
int m, x[200100];
int main() {
  scanf("%d%d%d", &n, &k, &a);
  a++;
  scanf("%d", &m);
  now = (n + 1) / a;
  s.insert(0);
  s.insert(n + 1);
  for (int i = 1; i <= m; ++i) {
    int x;
    scanf("%d", &x);
    it = s.lower_bound(x);
    int r = (*it);
    it--;
    int l = (*it);
    now -= (r - l) / a;
    now += (x - l) / a + (r - x) / a;
    if (now < k) {
      printf("%d\n", i);
      exit(0);
    }
    s.insert(x);
  }
  puts("-1");
  return 0;
}
