#include #include #include #include #include using namespace std; typedef long long ll; const int inf=0x3f3f3f3f; const int maxn=110; char str[maxn],tmp[maxn<<1]; int len1[maxn<<1]; int ans[555000]; int init(char *st){ int len=strlen(st); tmp[0]='@'; for(int i=1;i<=2*len;i+=2){ tmp[i]='#'; tmp[i+1]=st[i/2]; } tmp[2*len+1]='#'; tmp[2*len+2]='$'; tmp[2*len+3]=0; return 2*len+1; } void Manacher(char *st,int len){ int p=0,ans=0,po=0; for(int i=1;i<=len;i++){ if(p>i) len1[i]=min(p-i,len1[2*po-i]); else len1[i]=1; while(st[i-len1[i]]==st[i+len1[i]]) len1[i]++; if(len1[i]+i>p){ p=len1[i]+i; po=i; } ans=max(ans,len1[i]); } } int main(){ int T,n,m,k; scanf("%d",&T); while(T--){ scanf("%d%d%d",&n,&m,&k); int cnt=0; for(int i=1;i<=n;i++){ scanf("%s",str); int len=init(str); Manacher(tmp,len); for(int i=1;i<=len;i++) len1[i]--; for(int i=1;i<=len;i++){ while(len1[i]>0){ ans[cnt++]=len1[i]; len1[i]-=2; } } } sort(ans,ans+cnt); int sum=0; for(int i=0;ik) printf("False\n"); else{ int sum1=0; for(int i=cnt-1;i>=cnt-m;i--) sum1+=ans[i]; if(sum1