import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int n = Integer.parseInt(temp[0]);
		int m = Integer.parseInt(temp[1]);

		Map<Integer, Integer> ans = new HashMap<Integer,Integer>();


		for(int i = 0; i < n; i++) {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		}
		int a = 0;
		for(Entry<Integer, Integer> entry : ans.entrySet()) {

			if(entry.getValue() == n) {
				a++;
			}
		}
		System.out.println(a);
	}

} import java.util.HashMap; HashMap java.util import java.util.Map; Map java.util import java.util.Map.Entry; Entry java.util.Map import java.util.Scanner; Scanner java.util public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int n = Integer.parseInt(temp[0]);
		int m = Integer.parseInt(temp[1]);

		Map<Integer, Integer> ans = new HashMap<Integer,Integer>();


		for(int i = 0; i < n; i++) {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		}
		int a = 0;
		for(Entry<Integer, Integer> entry : ans.entrySet()) {

			if(entry.getValue() == n) {
				a++;
			}
		}
		System.out.println(a);
	}

} Main public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int n = Integer.parseInt(temp[0]);
		int m = Integer.parseInt(temp[1]);

		Map<Integer, Integer> ans = new HashMap<Integer,Integer>();


		for(int i = 0; i < n; i++) {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		}
		int a = 0;
		for(Entry<Integer, Integer> entry : ans.entrySet()) {

			if(entry.getValue() == n) {
				a++;
			}
		}
		System.out.println(a);
	} main {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int n = Integer.parseInt(temp[0]);
		int m = Integer.parseInt(temp[1]);

		Map<Integer, Integer> ans = new HashMap<Integer,Integer>();


		for(int i = 0; i < n; i++) {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		}
		int a = 0;
		for(Entry<Integer, Integer> entry : ans.entrySet()) {

			if(entry.getValue() == n) {
				a++;
			}
		}
		System.out.println(a);
	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) String[] temp = scanner.nextLine().split(" "); temp scanner.nextLine().split(" ") scanner.nextLine().split scanner.nextLine() scanner.nextLine scanner " " int n = Integer.parseInt(temp[0]); n Integer.parseInt(temp[0]) Integer.parseInt Integer temp[0] temp 0 int m = Integer.parseInt(temp[1]); m Integer.parseInt(temp[1]) Integer.parseInt Integer temp[1] temp 1 Map<Integer, Integer> ans = new HashMap<Integer,Integer>(); ans new HashMap<Integer,Integer>() for(int i = 0; i < n; i++) {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		} {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		} String[] list = scanner.nextLine().split(" "); list scanner.nextLine().split(" ") scanner.nextLine().split scanner.nextLine() scanner.nextLine scanner " " for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			} int j = 1; int j = 1; j 1 j < list.length j list.length list list.length j++ j++ j {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			} {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			} int put =  Integer.parseInt(list[j]); put Integer.parseInt(list[j]) Integer.parseInt Integer list[j] list j if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				} ans.containsKey(put) ans.containsKey ans put {
					ans.put(put, ans.get(put) + 1);
				} ans.put(put, ans.get(put) + 1) ans.put ans put ans.get(put) + 1 ans.get(put) ans.get ans put 1 {
					ans.put(put, 1);
				} ans.put(put, 1) ans.put ans put 1 int a = 0; a 0 for(Entry<Integer, Integer> entry : ans.entrySet()) {

			if(entry.getValue() == n) {
				a++;
			}
		} Entry<Integer, Integer> entry ans.entrySet() ans.entrySet ans {

			if(entry.getValue() == n) {
				a++;
			}
		} {

			if(entry.getValue() == n) {
				a++;
			}
		} if(entry.getValue() == n) {
				a++;
			} entry.getValue() == n entry.getValue() entry.getValue entry n {
				a++;
			} a++ a System.out.println(a) System.out.println System.out System System.out a String[] args args public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int n = Integer.parseInt(temp[0]);
		int m = Integer.parseInt(temp[1]);

		Map<Integer, Integer> ans = new HashMap<Integer,Integer>();


		for(int i = 0; i < n; i++) {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		}
		int a = 0;
		for(Entry<Integer, Integer> entry : ans.entrySet()) {

			if(entry.getValue() == n) {
				a++;
			}
		}
		System.out.println(a);
	}

} public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int n = Integer.parseInt(temp[0]);
		int m = Integer.parseInt(temp[1]);

		Map<Integer, Integer> ans = new HashMap<Integer,Integer>();


		for(int i = 0; i < n; i++) {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		}
		int a = 0;
		for(Entry<Integer, Integer> entry : ans.entrySet()) {

			if(entry.getValue() == n) {
				a++;
			}
		}
		System.out.println(a);
	}

} Main
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int n = Integer.parseInt(temp[0]);
		int m = Integer.parseInt(temp[1]);

		Map<Integer, Integer> ans = new HashMap<Integer,Integer>();


		for(int i = 0; i < n; i++) {

			String[] list = scanner.nextLine().split(" ");
			for(int j = 1; j < list.length; j++) {

				int put =  Integer.parseInt(list[j]);
				if(ans.containsKey(put)) {
					ans.put(put, ans.get(put) + 1);
				}else {
					ans.put(put, 1);
				}
			}
		}
		int a = 0;
		for(Entry<Integer, Integer> entry : ans.entrySet()) {

			if(entry.getValue() == n) {
				a++;
			}
		}
		System.out.println(a);
	}

}