#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10, OO = 0x3f3f3f3f;
const int mod = 1e9 + 7;
int n, k, a, m;
int main() {
  scanf("%d %d %d", &n, &k, &a);
  scanf("%d", &m);
  a++;
  int totalShips = (n + 1) / a;
  set<int> shotsPos;
  shotsPos.insert(0);
  shotsPos.insert(n + 1);
  for (int i = 0; i < int(m); i++) {
    int curPos;
    scanf("%d", &curPos);
    if (shotsPos.count(curPos)) continue;
    shotsPos.insert(curPos);
    auto idx = shotsPos.find(curPos);
    auto l = idx, r = idx;
    --l, ++r;
    int wholeRem = (*r - *l) / a;
    int leftSeg = (curPos - *l) / a;
    int rightSeg = (*r - curPos) / a;
    int nowRem = leftSeg + rightSeg;
    totalShips -= (wholeRem - nowRem);
    if (totalShips < k) {
      return printf("%d\n", i + 1), 0;
    }
  }
  puts("-1");
  return 0;
}
