#include <bits/stdc++.h>
using namespace std;
long long n, m, k, a;
long long used[200010];
long long mini = 1e9;
int main() {
  cin >> n >> k >> a >> m;
  long long arr[m];
  for (long long i = 0; i < m; i++) {
    cin >> arr[i];
  }
  long long left = 0;
  long long right = m - 1;
  long long mid;
  while (left <= right) {
    for (long long i = 1; i <= n; i++) {
      used[i] = 0;
    }
    mid = left + (right - left) / 2;
    used[arr[mid]] = 1;
    for (long long i = 0; i <= mid; i++) {
      used[arr[i]] = 1;
    }
    long long cnt = 0;
    long long ok = 0;
    int ko = 0;
    for (long long i = 1; i <= n; i++) {
      if (used[i] == 0) {
        cnt++;
        if (cnt == a) {
          cnt = 0;
          ok++;
          i++;
        }
      } else {
        ko++;
        cnt = 0;
      }
    }
    if (ok < k) {
      right = mid - 1;
      mini = min(mid + 1, mini);
    } else {
      left = mid + 1;
    }
  }
  if (mini == 1e9) {
    cout << -1 << endl;
  } else {
    cout << mini << endl;
  }
}
