func_code_string: #include <bits/stdc++.h>   using namespace std;   long n, k, ar[200000];   long long reach[777777];   long long q;   long long ans[777777];   multiset<long long> bst;   multiset<long long>::iterator it;   int main() {     ios_base::sync_with_stdio(0);     cin >> n >> k;     for (int i = 1; i <= n; i++) cin >> ar[i];     reach[0] = 1;     for (int i = 1; i <= 666666; i++) reach[i] = 0;     for (int i = 1; i <= n; i++)       for (int j = 555555; j + 1; --j)         if (reach[j]) reach[j + ar[i]] = 1;     ans[0] = 0;     bst.insert(0);     for (int i = 1; i <= 666666; i++) {       ans[i] = 1e18;       if (i > k && ans[i - k - 1] < 1e18) {         it = bst.find(ans[i - k - 1]);         bst.erase(it);       }       if (reach[i] == 0) continue;       if (bst.size() == 0) continue;       it = bst.begin();       q = (*it);       ans[i] = q + 1;       bst.insert(ans[i]);     }     q = 666666;     while (ans[q] > 1e17) --q;     cout << q <<     << ans[q] << endl;     cin.get();     cin.get();     return 0;   }   