#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k, a;
  cin >> n >> k >> a;
  int spaceFor = (n + 1) / (a + 1);
  int x, found = -1, m;
  cin >> m;
  set<pair<int, int>> s;
  s.insert(make_pair(1, n));
  for (int i = 1; i <= m; ++i) {
    cin >> x;
    if (found != -1) continue;
    auto it = s.upper_bound({x, n + 1});
    it--;
    auto p = *it;
    int l = p.first, r = p.second;
    if (r < x) {
      continue;
    }
    spaceFor -= (r - l + 2) / (a + 1);
    s.erase(it);
    if (l <= x - 1) {
      s.insert({l, x - 1});
      spaceFor += (x - l + 1) / (a + 1);
    }
    if (r >= x + 1) {
      s.insert({x + 1, r});
      spaceFor += (r - x + 1) / (a + 1);
    }
    if (spaceFor < k) {
      found = i;
    }
  }
  cout << found << "\n";
  return 0;
}
