#include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #define inf 0x7fffffff using namespace std; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,d,k,ed,ans,a[1001],f[1<<15]; inline bool jud(int x){ int res=0; for(int i=1;i<=d;i++) if((1<<(i-1))&x) if(++res>k)return 0; return 1; } int main(){ n=read();d=read();k=read();ed=(1<<d)-1; for(int i=1;i<=n;i++){ int x=read(); while(x--)a[i]^=(1<<(read()-1)); } for(int i=1;i<=n;i++) for(int j=ed;j>=0;j--) f[j|a[i]]=max(f[j|a[i]],f[j]+1); for(int i=ed;i>=0;i--) if(jud(i))ans=max(ans,f[i]); printf("%d",ans); return 0; }