#include <bits/stdc++.h>
using namespace std;
int n, k, a;
int m;
int num[200005];
int Copy[200005];
int Ans(int pp) {
  int ret = 0;
  if (pp >= a) {
    ++ret;
    pp -= a;
  }
  ret += pp / (a + 1);
  return ret;
}
bool Check(int pp) {
  std::copy(num, num + 1 + pp, Copy);
  sort(Copy, Copy + pp + 1);
  int ret = 0;
  for (int i = 1; i <= pp; ++i) {
    ret += Ans(Copy[i] - Copy[i - 1] - 1);
  }
  ret += Ans((num[m + 1] - Copy[pp]));
  return ret >= k;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> k >> a;
  cin >> m;
  for (int i = 1; i <= m; ++i) {
    cin >> num[i];
  }
  int beg = 0, en = m + 1;
  num[0] = 0;
  num[m + 1] = n;
  int last = 0x3f3f3f3f;
  while (beg < en) {
    int mid = beg + en >> 1;
    if (Check(mid)) {
      beg = mid + 1;
    } else {
      last = min(last, mid);
      en = mid;
    }
  }
  if (last != 0x3f3f3f3f)
    cout << last << endl;
  else
    cout << -1 << endl;
}
