#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void integerFactorization(int n, vector& base, vector& expo) { base.clear(); expo.clear(); int a = 2; while(a * a <= n){ int b = 0; while(n % a == 0){ ++ b; n /= a; } if(b > 0){ base.push_back(a); expo.push_back(b); } ++ a; } if(n > 1){ base.push_back(n); expo.push_back(1); } } const int MOD = 1000000007; int main() { int n, k; cin >> n >> k; map > m; for(int i=0; i> a; vector base, expo; integerFactorization(a, base, expo); for(unsigned j=0; j v = p.second; sort(v.rbegin(), v.rend()); int size = min(k, (int)v.size()); for(int i=0; i