#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include<iostream> #include<cassert> #include<atcoder/modint> using namespace std; using mint=atcoder::modint998244353; mint fac[20001],invfac[20001]; int x,K; mint p,q; const int D=350; mint dp[2][D+2][D+2]; mint ret[2][20001]; void g(int d,int id) { assert(d>=D); const int sz=2*K-d; for(int c=0;c<=sz;c++)ret[id][c]=0; const int w=2*d+4; for(int i=w;i-d<=sz;i+=w) { int v=i-d; for(int c=v;c<=sz;c+=2)ret[id][c]+=invfac[(c-v)/2]*invfac[(c+v)/2]; } for(int i=0;d-i<=sz;i-=w) { int v=d-i; for(int c=v;c<=sz;c+=2)ret[id][c]+=invfac[(c-v)/2]*invfac[(c+v)/2]; } for(int i=-2+w;i-d<=sz;i+=w) { int v=i-d; for(int c=v;c<=sz;c+=2)ret[id][c]-=invfac[(c-v)/2]*invfac[(c+v)/2]; } for(int i=-2;d-i<=sz;i-=w) { int v=d-i; for(int c=v;c<=sz;c+=2)ret[id][c]-=invfac[(c-v)/2]*invfac[(c+v)/2]; } for(int c=0;c<=sz;c++)ret[id][c]*=fac[c]; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>x>>K; fac[0]=1; for(int i=1;i<=2*K;i++)fac[i]=fac[i-1]*mint::raw(i); invfac[2*K]=fac[2*K].inv(); for(int i=2*K;i--;)invfac[i]=invfac[i+1]*mint::raw(i+1); int now=0; dp[now][1][1]=1; for(int i=1;i<K;i++) { int nxt=1-now; for(int d=1;d<=D;d++) { dp[nxt][d][0]=dp[now][d][1]; for(int v=1;v<=d;v++) { dp[nxt][d][v]=dp[now][d][v-1]+dp[now][d][v+1]; } } for(int d=1;d<=D;d++) { dp[nxt][d][d]+=dp[now][d-1][d-1]; } now=nxt; } p=mint::raw(x)/100; q=1-p; mint ans=0; for(int ld=1;ld<=D;ld++)for(int rd=1;rd<=D;rd++) { mint cur=0; for(int v=0;v<=min(ld,rd);v++) { cur+=dp[now][ld][v]*dp[now][rd][v]; } ans+=cur*mint::raw(max(ld,rd)); } now=0; if(D<=K)g(D,now); for(int d=D+1;d<=K;d++) { int nxt=1-now; g(d,nxt); mint cur=0; for(int l=d;l<=K*2-d;l+=2) { cur+=ret[now][l-1]*ret[nxt][2*K-l]; } ans+=cur*d; now=nxt; } ans*=(p*q).pow(K); cout<<ans.val()<<endl; }