#include <bits/stdc++.h>
using namespace std;
const int INF = 0x7fffffff;
const int MOD = 1e9 + 7;
const int N = 1e6 + 10;
set<int> cell;
int main() {
  int n, k, a, m;
  scanf("%d%d%d", &n, &k, &a);
  int ept = n - (k * a);
  scanf("%d", &m);
  cell.insert(0);
  cell.insert(n + 1);
  int x;
  int ans = -1;
  int tot = (n + 1) / (a + 1);
  for (int i = 1; i <= m; i++) {
    scanf("%d", &x);
    int v = *cell.upper_bound(x);
    int u = *(--cell.upper_bound(x));
    tot -= (v - u) / (a + 1);
    tot += (x - u) / (a + 1) + (v - x) / (a + 1);
    if (tot >= k) {
      cell.insert(x);
    } else {
      ans = i;
      break;
    }
  }
  printf("%d\n", ans);
  return 0;
}
