#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k, c, m, x, mx = 0;
  cin >> n >> k >> c >> m;
  mx = (n + 1) / (c + 1);
  set<int> s;
  s.insert(0), s.insert(n + 1);
  for (int i = 0; i < m; i++) {
    int a, b;
    set<int>::iterator A, B;
    cin >> x;
    A = s.lower_bound(x);
    A--;
    B = s.upper_bound(x);
    a = *A;
    a++;
    b = *B;
    b--;
    mx -= ((b - a + 2) / (c + 1)) -
          ((b - x + 1) / (c + 1) + (x - a + 1) / (c + 1));
    if (mx < k) return cout << i + 1 << endl, 0;
    s.insert(x);
  }
  cout << -1 << endl;
  return 0;
}
