#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5;
int x;
set<int> X;
int main() {
  int n, k, a;
  cin >> n >> k >> a;
  int m;
  cin >> m;
  X.clear();
  X.insert(0), X.insert(n + 1);
  int sum = (n + 1) / (a + 1);
  int ans = -1, f = 0;
  for (int i = 1; i <= m; i++) {
    scanf("%d", &x);
    set<int>::iterator it = X.upper_bound(x);
    int r = *it;
    int l = *(--it);
    sum = sum - (r - l) / (a + 1) + (x - l) / (a + 1) + (r - x) / (a + 1);
    if (sum < k && !f) {
      ans = i;
      f = 1;
      break;
    }
    X.insert(x);
  }
  cout << ans << endl;
}
