#include <bits/stdc++.h>
using namespace std;
int n, k, a, m, d;
set<int> shot;
int main() {
  scanf("%d%d%d%d", &n, &k, &a, &m);
  shot.insert(0);
  shot.insert(n + 1);
  int tot = (n + 1) / (a + 1);
  for (int i = 1; i <= m; ++i) {
    scanf("%d", &d);
    set<int>::iterator it = shot.lower_bound(d);
    int right = *it, left = *(--it);
    int prev = (right - left) / (a + 1);
    int cur = (d - left) / (a + 1) + (right - d) / (a + 1);
    tot -= (prev - cur);
    if (tot < k) {
      printf("%d\n", i);
      return 0;
    }
    shot.insert(d);
  }
  puts("-1");
}
