#include <bits/stdc++.h>
using namespace std;
int n, a, k, m, cnt, ans, maxi, mini;
int num[200000 + 10];
int main() {
  while (scanf("%d%d%d%d", &n, &k, &a, &m) == 4) {
    ans = -1, cnt = 0;
    for (int i = 1; i <= m; ++i) scanf("%d", &num[i]);
    set<int> s;
    s.insert(0), s.insert(n + 1);
    cnt = (n + 1) / (a + 1);
    for (int i = 1; i <= m; ++i) {
      mini = *(--s.lower_bound(num[i]));
      maxi = *s.upper_bound(num[i]);
      cnt -= (maxi - mini) / (a + 1);
      cnt += (maxi - num[i]) / (a + 1) + (num[i] - mini) / (a + 1);
      s.insert(num[i]);
      if (cnt < k) {
        ans = i;
        break;
      }
    }
    printf("%d\n", ans);
  }
  return 0;
}
