#include #include #include using namespace std; using mint = atcoder::static_modint<998244353>; int main () { int x, K; cin >> x >> K; // とんでもない高難易度問題かとおもったけど、シミュレーションが回る制約だった... if (10 < K) return 0; mint ans = 0; mint p = (mint(x) / 100).pow(K) * (1 - mint(x) / 100).pow(K); for (int S = 0; S < (1 << (2 * K)); S++) { int max_depth = [&] () { int res = 0; int cur = 0; for (int i = 0; i < 2 * K; i++) { int v = 1; if (0 < (S & (1 << i))) v = -1; cur += v; if (cur < 0) return -1; res = max(res, cur); } if (cur != 0) return -1; return res; }(); if (max_depth == -1) continue; ans += p * max_depth; } cout << ans.val() << "\n"; }