#include<cstdio> const int size = 1002; const int Bin[17] = {0,1,2,4,8,16,32,64,128,256,512, 1024,2048,4096,8192,16384,32768}; int date[size], N, D, K, Com[16]; int Total, Best; int main() { int i, j, A, temp; while (scanf("%d%d%d",&N,&D,&K)!=EOF) { for (i = 1; i<=N; i++) { scanf("%d",&A); date[i]=0; for (j = 1; j <= A; j++) { scanf("%d",&temp); date[i] |= Bin[temp]; } } Total = A = Best = 0; for (i = 1; i <= K; i++) { Com[i] = i; A |= Bin[i]; } for (i = 1; i <= N; i++) if ((A|date[i])==A)Total++; if (Total > Best) Best = Total; while (Com[1] < D-K+1) { for (i = K; i>0&&Com[i]>=D-K+i; i--); for (Com[i]++,j=i+1; j<=K; Com[j++]=Com[j-1]+1); A = Total = 0; for (i = 1; i <= K; i++) A |= Bin[Com[i]];/**/ for (j = 1; j <= N; j++) if ((A|date[j])==A) Total++; if (Total>Best) Best = Total; } printf("%d/n", Best); } return 0; }