#include <bits/stdc++.h>
using namespace std;
set<int> s;
set<int>::iterator it1, it2;
int main() {
  int n, k, a, x, m, num, ans;
  while (~scanf("%d%d%d", &n, &k, &a)) {
    s.clear();
    num = (n + 1) / (a + 1);
    scanf("%d", &m);
    s.insert(0);
    s.insert(n + 1);
    ans = -1;
    for (int i = 1; i <= m; i++) {
      scanf("%d", &x);
      if (ans != -1) continue;
      it1 = s.lower_bound(x);
      if (*it1 == x) continue;
      it2 = it1;
      it1--;
      num -= ((*it2) - (*it1)) / (a + 1);
      num += (x - (*it1)) / (a + 1);
      num += ((*it2) - x) / (a + 1);
      s.insert(x);
      if (num < k) {
        ans = i;
      }
    }
    printf("%d\n", ans);
  }
  return 0;
}
