#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n,h,k,tmp,ump,a[2005][2005],dp[2005][2005],maxx[2005];
int main()
{
memset(dp,0xc0,sizeof(dp));
ios::sync_with_stdio(false);
cin>>n>>h>>k;
for(int i=1;i<=n;i++)
{
cin>>tmp;
for(int j=1;j<=tmp;j++)
{
cin>>ump;
a[i][ump]++;
}
}
for(int i=1;i<=n;i++)
dp[i][h+1]=0;
for(int j=h;j>=0;j--)
{
for(int i=1;i<=n;i++)
{
dp[i][j]=max(dp[i][j],dp[i][j-1]+a[i][j]);
maxx[j]=max(maxx[j],dp[i][j]);
}
if(j+k<=h)
for(int i=1;i<=n;i++)
{
dp[i][j]=max(dp[i][j],maxx[j+k]+a[i][j]);
maxx[j]=max(maxx[j],dp[i][j]);
}
}
cout<<maxx[0];
return 0;
}
听取WA声一片