#include #include #include #include using namespace std; const int sigsize=26; const int maxnode=150*75; map ms; struct ACmachine { int E[maxnode][sigsize]; int val[maxnode]; int f[maxnode]; int last[maxnode]; int cnt[151]; int sz; ACmachine() { sz=1; } void clear() { memset(this,0,sizeof(ACmachine)); ms.clear(); sz=1; } inline int idx(char a) { return a-'a'; } void insert(char *s,int v) { if(ms.count(string(s))) return; int len=strlen(s),u=0; for(int i=0,v;i q; f[0]=0; for(int c=0;cbest) best=ac.cnt[i]; printf("%d\n",best); for(int i=1;i<=n;i++) if(ac.cnt[ms[string(p[i])]]==best) printf("%s\n",p[i]); } return 0; }