import java.util.ArrayList;
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt(); //珠子的个数
int m=sc.nextInt(); //连续不能出现同一种颜色的珠子数
int c=sc.nextInt(); //颜色的种类
ArrayList<ArrayList<Integer>> arr=new ArrayList<ArrayList<Integer>>();
for(int i=0;i<n;i++){
ArrayList<Integer> list=new ArrayList<Integer>();
int k=sc.nextInt();
for(int j=0;j<k;j++){
list.add(sc.nextInt());
}
arr.add(list);
}
f(arr,n,m,c);
}
}
private static void f(ArrayList<ArrayList<Integer>> arr, int n, int m, int c) {
if(m==1){
System.out.println(0);
return;
}
ArrayList<ArrayList<Integer>> p=new ArrayList<ArrayList<Integer>>();
int sum=0;
for(int i=1;i<=c;i++){ //每一种颜色进行判断
ArrayList<Integer> list=new ArrayList<Integer>();
int count=1;
for(ArrayList<Integer> t:arr){
for(int j=0;j<t.size();j++){
if(t.get(j)==i){
list.add(count);
t.remove(Integer.valueOf(i));
}
}
count++;
}
p.add(list);
}
for(ArrayList<Integer> t:p){
if(t.size()==1){
continue;
}
if((t.get(0)==1)&&(t.get(t.size()-1)==n)){
sum++;
continue;
}
for(int i=1;i<t.size();i++){
if((t.get(i)-t.get(i-1))<m){
sum++;
continue;
}
}
}
System.out.println(sum);
}
}