#include #include #include #include #include using namespace std; using mint=atcoder::modint998244353; vectorret[11]; void add(vector&A,const vector&B) { if(A.size() >cur(11); for(int i=0;i<11;i++)for(int j=0;j<11;j++) { int t=m%2==0?(i+j)%11:(i-j+11)%11; if(fst&&n%2==0&&t!=0)continue; add(cur[t],atcoder::convolution(ret[i],ret[j])); } if(n%2==0) { if(fst)swap(ret[0],cur[0]); else { for(int i=0;i<11;i++)swap(ret[i],cur[i]); } } else { for(int i=0;i<11;i++)ret[i].clear(); for(int i=0;i<11;i++) { for(int j=0;j<=9;j++) { int t=(i+j)%11; if(fst&&t!=0)continue; if(ret[t].size()F[2][11]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>N>>K; int n[2]={N/2,N-N/2}; for(int t=0;t<2;t++) { int v=9*n[t]; int z=1; while(z<=v)z<<=1; vectorA(z,mint::raw(0)); for(int i=0;i<=9;i++)A[i]=mint::raw(1); atcoder::internal::butterfly(A); for(int i=0;inow=atcoder::convolution(F[0][i],F[1][i]); for(int k=0;k