rt
#include<bits/stdc++.h>
using namespace std;
int ans[2010][2010],t[2010][2010],n,h,d;
int main()
{
memset(ans,0,sizeof(ans));
memset(t,0,sizeof(t));
scanf("%d%d%d",&n,&h,&d);
for(int i=1;i<=n;i++)
{
int ai;scanf("%d",&ai);
for(int j=1;j<=ai;j++)
{
int m;scanf("%d",&m);
if(m>0&&m<=h)t[m][i]++;
}
}
for(int i=h;i>0;i--)
{
int maxa=-1;
for(int k=1;k<=n;k++)
maxa=max(ans[i+d][k],maxa);
for(int j=1;j<=n;j++)
{
ans[i][j]=max(ans[i+1][j],maxa)+t[i][j];
}
}
int maxans=-1;
for(int i=1;i<=n;i++)maxans=max(ans[1][i],maxans);
cout<<maxans;
return 0;
}