#include #include #include using namespace std; int N,K,c[14]; long V=1; vectorA[1<<14]; void dfs(int k,int now,int rest) { if(rest==0) { A[k].push_back(now); } else { for(int i=0;i>i&1)) { dfs(k|1<>N>>K; int sz=0; for(int i=1;i<=9;i++) { int C;cin>>C; for(;C;V*=C--)c[sz++]=i; } long ans=0; dfs(0,0,N/2); if(N%2==0) { long P10=1; for(int i=0;iAc=A[comb]; for(int&a:Ac)a=(K-P10*a%K)%K; sort(Ac.begin(),Ac.end()); int u=(1<A[u][iu])iu++; else { int l=0; int p=A[u][iu]; while(ic>1|y; } } else { dfs(0,0,N-N/2); long P10=1; for(int i=0;iA[u][iu])iu++; else { int l=0; int p=A[u][iu]; while(ic>1|y; } } cout<