#include #include #include #include #include #include #include #include #include using namespace std; int n,l[51]; int a[51][51][52][52]; char str[100],w[100][100]; int dp(int s,int t,int word,int pos){ int &ret=a[s][t][word][pos]; if (ret>=0) return ret; int i,j; if (word!=n && pos==l[word]-1){ return ret=dp(s+1,t,n,0); } if (s==t){ if (word==n) return ret=0; return ret=1000; } if (word==n){ ret=1+dp(s+1,t,n,0); for(i=0;i