#include #include #include #include #include #include #include #include #define N 16 #define M 1<<16 #define MS 1000000009 #define LL long long using namespace std; int n,goal; string str[N]; LL da[N]; int gra[N][N],mark[N]; int slen[N]; int dp[M][N]; LL ans; void ini(void) { goal=(1<>1; } int j=str[i].size(); string tempstr; while(j--) tempstr.push_back(str[i][j]); str[i]=tempstr; } sort(str,str+n); for(int i=0;islen[j]) for(int k1=0;k1b) a=b,k=i; } rans(t,k,gra[p][k]); } void re(void) { for(int i=0;i