func_code_string: #include <bits/stdc++.h>   int bus_bin(int[], int, int, int);   int main() {     int n, k, q, i, j, l, y, aux, existeB;     scanf( %d%d , &n, &k);     int monedas[n];     for (i = 0; i < n; i++) scanf( %d , &monedas[i]);     scanf( %d , &q);     int cant[q];     for (i = 0; i < q; i++) scanf( %d , &cant[i]);     for (i = 0; i < q; i++) {       aux = cant[i];       existeB = bus_bin(monedas, 0, n - 1, aux);       if (existeB) {         cant[i] = 1;       } else {         cant[i] = k + 1;         for (y = 0; y < n && monedas[y] <= aux; y++) {           for (j = 1; j <= k && j * monedas[y] <= aux; j++) {             if (aux - j * monedas[y] == 0) {               if (j < cant[i]) cant[i] = j;             } else {               for (l = 1; l + j <= k; l++) {                 existeB = bus_bin(monedas, 0, n - 1, (aux - j * monedas[y]) / l);                 if ((aux - j * monedas[y]) % l == 0 && existeB) {                   if (j + l < cant[i]) cant[i] = j + l;                   break;                 }               }             }           }         }       }     }     for (i = 0; i < q; i++) {       printf( %d n , cant[i] > k ? -1 : cant[i]);     }     return 0;   }   int bus_bin(int v[], int ini, int fin, int x) {     int medio;     medio = (ini + fin) / 2;     if (v[medio] == x)       return 1;     else if (ini > fin)       return 0;     else if (x > v[medio])       return bus_bin(v, medio + 1, fin, x);     else if (x < v[medio])       return bus_bin(v, ini, medio - 1, x);   }   