fun main() { val (n, p) = readln().split(" ").map { it.toLong() } var e = 0L var m = n while (m > 0) { e += m / p m /= p } println(pow(p, e)) } fun pow(a: Long, e: Long): Long { val mod = 998244353L if (e == 0L) return 1 if (e == 1L) return a % mod val b = pow(a, e / 2) return if (e % 2 == 0L) { b * b % mod } else { (b * b % mod) * a % mod } }