func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int n, k, pres[300005], cont[300005];   vector<long long int> fcts[300005];   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     cin >> n >> k;     long long int tot = 0;     pres[1] = 1;     for (long long int i = 1; i <= n; ++i)       for (int j = 2 * i; j <= n; j += i) fcts[j].push_back(i);     for (long long int i = 2; i <= n; ++i) {       if (tot >= k) {         n = i - 1;         break;       }       tot += fcts[i].size();       cont[i] += fcts[i].size();       for (long long int v : fcts[i]) cont[v]++;       pres[i] = 1;     }     if (tot < k) {       cout <<  No n ;       return 0;     }     set<pair<long long int, long long int> > conts;     for (long long int i = 1; i <= n; ++i) conts.insert(make_pair(cont[i], i));     long long int rmv = tot - k;     while (rmv) {       auto it = conts.lower_bound(make_pair(rmv + 1, -1LL));       if (it == conts.begin()) {         cout <<  No n ;         return 0;       }       it--;       pair<long long int, long long int> xp = *it;       pres[xp.second] = 0;       rmv -= xp.first;       conts.erase(it);       for (long long int v : fcts[xp.second]) {         if (pres[v]) {           conts.erase(make_pair(cont[v], v));           cont[v]--;           conts.insert(make_pair(cont[v], v));         }       }       for (long long int v = 2 * xp.second; v <= n; v += xp.second)         if (pres[v]) {           conts.erase(make_pair(cont[v], v));           cont[v]--;           conts.insert(make_pair(cont[v], v));         }     }     cout <<  Yes n ;     vector<long long int> ans;     for (long long int i = 1; i <= n; ++i)       if (pres[i]) ans.push_back(i);     cout << ans.size() <<   n ;     for (long long int v : ans) cout << v <<    ;     cout <<   n ;   }   