import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		int food[] = new int[M + 1];

		for (int i = 0; i < food.length; i++) {
			food[i] = 0;
		}

		for (int i = 0; i < N; i++) {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		}

		int sum = 0;
		for (int i = 0; i < food.length; i++) {
			if (food[i] == N) {
				sum++;
			}
		}

		System.out.println(sum);
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		int food[] = new int[M + 1];

		for (int i = 0; i < food.length; i++) {
			food[i] = 0;
		}

		for (int i = 0; i < N; i++) {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		}

		int sum = 0;
		for (int i = 0; i < food.length; i++) {
			if (food[i] == N) {
				sum++;
			}
		}

		System.out.println(sum);
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		int food[] = new int[M + 1];

		for (int i = 0; i < food.length; i++) {
			food[i] = 0;
		}

		for (int i = 0; i < N; i++) {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		}

		int sum = 0;
		for (int i = 0; i < food.length; i++) {
			if (food[i] == N) {
				sum++;
			}
		}

		System.out.println(sum);
	} main {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		int food[] = new int[M + 1];

		for (int i = 0; i < food.length; i++) {
			food[i] = 0;
		}

		for (int i = 0; i < N; i++) {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		}

		int sum = 0;
		for (int i = 0; i < food.length; i++) {
			if (food[i] == N) {
				sum++;
			}
		}

		System.out.println(sum);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int M = sc.nextInt(); M sc.nextInt() sc.nextInt sc int food[] = new int[M + 1]; food new int[M + 1] M + 1 M 1 for (int i = 0; i < food.length; i++) {
			food[i] = 0;
		} int i = 0; int i = 0; i 0 i < food.length i food.length food food.length i++ i++ i {
			food[i] = 0;
		} {
			food[i] = 0;
		} food[i] = 0 food[i] food i 0 for (int i = 0; i < N; i++) {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		} {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		} int K = sc.nextInt(); K sc.nextInt() sc.nextInt sc for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			} int j = 0; int j = 0; j 0 j < K j K j++ j++ j {
				food[sc.nextInt()] += 1;
			} {
				food[sc.nextInt()] += 1;
			} food[sc.nextInt()] += 1 food[sc.nextInt()] food sc.nextInt() sc.nextInt sc 1 int sum = 0; sum 0 for (int i = 0; i < food.length; i++) {
			if (food[i] == N) {
				sum++;
			}
		} int i = 0; int i = 0; i 0 i < food.length i food.length food food.length i++ i++ i {
			if (food[i] == N) {
				sum++;
			}
		} {
			if (food[i] == N) {
				sum++;
			}
		} if (food[i] == N) {
				sum++;
			} food[i] == N food[i] food i N {
				sum++;
			} sum++ sum System.out.println(sum) System.out.println System.out System System.out sum String[] args args public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		int food[] = new int[M + 1];

		for (int i = 0; i < food.length; i++) {
			food[i] = 0;
		}

		for (int i = 0; i < N; i++) {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		}

		int sum = 0;
		for (int i = 0; i < food.length; i++) {
			if (food[i] == N) {
				sum++;
			}
		}

		System.out.println(sum);
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		int food[] = new int[M + 1];

		for (int i = 0; i < food.length; i++) {
			food[i] = 0;
		}

		for (int i = 0; i < N; i++) {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		}

		int sum = 0;
		for (int i = 0; i < food.length; i++) {
			if (food[i] == N) {
				sum++;
			}
		}

		System.out.println(sum);
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		int food[] = new int[M + 1];

		for (int i = 0; i < food.length; i++) {
			food[i] = 0;
		}

		for (int i = 0; i < N; i++) {
			int K = sc.nextInt();
			for (int j = 0; j < K; j++) {
				food[sc.nextInt()] += 1;
			}
		}

		int sum = 0;
		for (int i = 0; i < food.length; i++) {
			if (food[i] == N) {
				sum++;
			}
		}

		System.out.println(sum);
	}
}