#include <bits/stdc++.h>
using namespace std;
long long int gcd(long long int a, long long int b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long n, m, k, a, tot;
set<long long> s;
long long seg(long long x) {
  long long num = x / (a + 1);
  if (x % (a + 1) == a) num++;
  return num;
}
int main() {
  cin >> n >> k >> a;
  tot = seg(n);
  s.insert(0);
  s.insert(n + 1);
  cin >> m;
  long long c;
  for (int i = 1; i <= m; i++) {
    cin >> c;
    s.insert(c);
    set<long long>::iterator it = s.find(c), s = it, e = it;
    s--;
    e++;
    tot -= seg(*e - *s - 1);
    tot += seg(c - *s - 1) + seg(*e - c - 1);
    if (tot < k) {
      cout << i << endl;
      return 0;
    }
  }
  cout << -1 << endl;
  return 0;
}
