#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#define pb push_back
#define MAXN 2000+2000
using namespace std;
int a[MAXN][MAXN];
int f[MAXN][MAXN];
int n,h,delta;
void init(){
scanf("%d%d%d",&n,&h,&delta);
for(int i=1;i<=n;i++){
int t;scanf("%d",&t);
while(t--){
int v;scanf("%d",&v);
a[i][v]++;
}
}
for(int i=1;i<=n;i++){
f[i][h]=a[i][h];
}
}
void solve(){
for(int j=h-1;j>=0;j--){
int t=0;
for(int i=1;i<=n;i++){
t=max(t,f[i][j+delta]);
}
for(int i=1;i<=n;i++){
f[i][j]=max(f[i][j+1],t)+a[i][j];
}
}
int ans=0;
for(int i=1;i<=n;i++){
ans=max(ans,f[i][0]);
}
printf("%d\n",ans);
}
int main()
{
init();
solve();
return 0;
}