Mint f(ll n,ll k){ if(k==0){ return n; } if(n==2){ return Mint(2+k%2)**powmod(2,k/2,MD-1); } ll p=2; Mint z=1; while(n>1){ if(n%p==0){ if(p==2){ z*=f(p+1,k-1); }else{ z*=f(2,k-1); z*=f(p+1>>1,k-1); } n/=p; }else{ p+=1; } } return z; } { ll@n,@k; wt(f(n,k)); }