import std.stdio; import std.string; import std.conv; import std.math; const ulong MOD = 998244353; void main(){ auto input = readln.chomp.split.to!(ulong[]); ulong n = input[0]; ulong m = input[1]; ulong[] p; for(auto i = 2; i ^^ 2 <= m; i += i % 2 + 1){ if(m % i) continue; p ~= 0; while(m % i == 0){ p[$ - 1]++; m /= i; } } if(m > 1){ p ~= 1; } ulong result = 1; foreach(x; p){ result *= (x + 1).powmod(n, MOD) + MOD - x.powmod(n, MOD); result %= MOD; } result.writeln; }