func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( Ofast,no-stack-protector )   #pragma GCC target(         sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native )   using namespace std;   const int maxn = 3e5 + 5;   const int maaxn = 1e7 + 2;   const int minn = 22;   const long long mod = 1e9 + 7;   const long double pi = 3.141592653589793238462643383279;   long long binpow(long long a, long long p) {     if (p == 0) return 0;     if (p % 2 == 1) return (a + binpow(a, p - 1)) % mod;     long long b = binpow(a, p / 2);     return (b + b) % mod;   }   int a[maxn];   vector<int> dv[maxn];   vector<int> hop[maaxn];   int cnt[maaxn];   bool sh(int &c, int &b) { return a[c] < a[b]; }   void solve() {     int n, k;     cin >> n >> k;     for (int i = 0; i < n; i++) {       cin >> a[i];       for (int j = 2; j * j <= a[i]; j++) {         if (a[i] % j == 0) {           dv[i].push_back(j);           cnt[j]++;           hop[j].push_back(i);           if (j * j != a[i])             dv[i].push_back(a[i] / j), cnt[a[i] / j]++,                 hop[a[i] / j].push_back(i);         }       }     }     for (int i = 2; i < maaxn; i++) {       if (cnt[i] >= k) {         for (int j = 0; j < k; j++) {           cout << (hop[i][j] + 1) <<    ;         }         cout << endl;         return;       }     }     int ma = 0;     int p = 0;     for (int i = 2; i < maaxn; i++) {       if (hop[i].size() > ma) {         ma = hop[i].size();         p = i;       }     }     vector<int> answ;     unordered_set<int> tv;     for (int i = 0; i < hop[p].size(); i++) tv.insert(hop[p][i]);     for (int i = 0; i < n; i++) {       if (tv.count(i) == 0) answ.push_back(i);     }     sort(answ.begin(), answ.end(), sh);     for (int i = 0; i < k; i++) cout << answ[i] + 1 <<    ;     return;   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     int t;     t = 1;     while (t--) {       solve();     }     cin >> t;     return 0;   }   