#include<bits/stdc++.h>
using namespace std;
int dp[2005][5005];
int a[2005][5005];
int n,h,d,ans;
int main(){
cin>>n>>h>>d;
for(int i=1;i<=n;i++){
int x;
cin>>x;
while(x--){
int y;
cin>>y;
a[i][y]++;
}
}
for(int i=h;i>=1;i--){
int ll=0;
if(i+d<=h){
for(int j=1;j<=n;j++){
ll=max(dp[i+d][j]+a[i][j],ll);
}
}
if(i!=h){
for(int j=1;j<=n;j++){
dp[i][j]=max(dp[i+1][j]+a[i][j],ll+a[i][j]);
}
}
else{
for(int j=1;j<=n;j++){
dp[i][j]=a[i][j];
}
}
}
for(int i=1;i<=n;i++){
ans=max(dp[h][i],ans);
}
cout<<ans;
}