#include <bits/stdc++.h>
using namespace std;
set<int> use;
int main() {
  int n, k, a, m, cnt, low, up, temp = 0, x;
  scanf("%d %d %d", &n, &k, &a);
  scanf("%d", &m);
  use.insert(0);
  use.insert(n + 1);
  cnt = (n + 1) / (a + 1);
  set<int>::iterator it1;
  while (temp < m) {
    scanf("%d", &x);
    temp++;
    it1 = use.lower_bound(x);
    up = *it1;
    it1--;
    low = *it1;
    cnt = cnt - (up - low) / (a + 1) + (x - low) / (a + 1) + (up - x) / (a + 1);
    if (cnt < k) {
      printf("%d", temp);
      return (0);
    }
    use.insert(x);
  }
  printf("-1");
  return (0);
}
