func_code_string: #include <bits/stdc++.h>   using namespace std;   struct milk {     int x, num;     bool operator<(const milk &mm) const { return x < mm.x; }   } b[1000010];   int a[1000010], n, m, k;   bool ok(int p2) {     int p1 = 1, now = 0;     while (p1 <= n || p2 <= m) {       if ((p1 <= n && a[p1] < now) || (p2 <= m && b[p2].x < now)) return 0;       for (int i = 1; i <= k; i++)         if (p1 <= n && (p2 > m || a[p1] < b[p2].x))           p1++;         else           p2++;       now++;     }     return 1;   }   int main() {     int l, r, mid;     scanf( %d%d%d , &n, &m, &k);     for (int i = 1; i <= n; i++) scanf( %d , &a[i]);     for (int i = 1; i <= m; i++) {       scanf( %d , &b[i].x);       b[i].num = i;     }     sort(a + 1, a + n + 1);     sort(b + 1, b + m + 1);     if (!ok(m + 1)) {       printf( -1 n );       return 0;     }     l = 1;     r = m + 1;     while (l < r) {       mid = (l + r) / 2;       if (ok(mid))         r = mid;       else         l = mid + 1;     }     printf( %d n , m - l + 1);     for (int i = l; i <= m; i++) printf( %d%c , b[i].num, i == m ?   n  :    );   }   