#include #include #include using namespace std; const int N=111; int n; double limit; char str[N][N]; int pre[N],len[N],dp[N][N]; int find(int k) { if(pre[k]==k) return k; pre[k]=find(pre[k]); return pre[k]; } int cal(int a,int b) { int i,l; int max=0; memset(dp[0],0,sizeof(dp[0])); for(i=1;i<=len[a];i++) { dp[i][0]=0; for(l=1;l<=len[b];l++) { if(str[a][i]==str[b][l]) dp[i][l]=dp[i-1][l-1]+1; else dp[i][l]=0; if(dp[i][l]>max) max=dp[i][l]; } } return max; } int main() { int Case=1; int i,l; int f1,f2,cnt,ans; while(scanf("%d%lf",&n,&limit)!=-1) { for(i=0;ilimit && cnt*100.0/len[l]>limit) pre[f1]=f2; } } ans=0; for(i=0;i