#include <bits/stdc++.h>
using namespace std;
int l[200005], r[200005], a[200005], b[200005];
int main() {
  int n, y, k, x, m, num = 0, f = 1;
  scanf("%d%d%d%d", &n, &k, &x, &m), x++;
  for (int i = 1; i <= m; i++) {
    scanf("%d", &a[i]);
    b[i] = a[i];
  }
  b[0] = 0, b[m + 1] = n + 1;
  sort(b + 1, b + m + 2);
  for (int i = 1; i <= m + 1; i++) {
    r[b[i - 1]] = b[i];
    l[b[i]] = b[i - 1];
    num += (b[i] - b[i - 1]) / x;
  }
  if (num >= k) {
    printf("-1\n");
    return 0;
  }
  for (int i = m; i >= 1; i--) {
    y = a[i];
    num = num + (r[y] - l[y]) / x - (y - l[y]) / x - (r[y] - y) / x;
    if (num >= k) {
      printf("%d\n", i);
      break;
    }
    r[l[y]] = r[y];
    l[r[y]] = l[y];
  }
}
