func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     int n, k, a, m, x, tk, i, tr, tl, r, l;     scanf( %d %d %d , &n, &k, &a);     scanf( %d , &m);     tk = (n + 1) / (a + 1);     set<int> ceils;     map<int, pair<int, int> > intv;     ceils.insert(n);     intv[n] = pair<int, int>(1, tk);     for (i = 1; i <= m; i++) {       scanf( %d  , &x);       auto it = ceils.lower_bound(x);       tk -= intv[*it].second;       r = intv[*it].first;       l = *it;       ceils.erase(it);       if (x > r) {         tr = ((x - r) + 1) / (a + 1);         ceils.insert(x - 1);         intv[x - 1] = pair<int, int>(r, tr);         tk += tr;       }       if (x < l) {         tl = ((l - x) + 1) / (a + 1);         ceils.insert(l);         intv[l] = pair<int, int>(x + 1, tl);         tk += tl;       }       if (tk < k) break;     }     if (i > m)       printf( -1 n );     else       printf( %d n , i);     return 0;   }   