import java.text.SimpleDateFormat;
import java.util.*;

public class Main {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String,Integer> map = new HashMap<String,Integer>();
        String temp = sc.nextLine();

        String[] tempArr = temp.split(" ");
        int N = Integer.parseInt(tempArr[0]);
        int M = Integer.parseInt(tempArr[1]);

        for (int m = 0; m < M; m++) {
            map.put((m + 1) + "", 0);
        }

        for (int n = 0; n < N; n++) {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        }

        int count = 0;
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == N) {
                count++;
            }
        }

        System.out.println(count);


    }

} import java.text.SimpleDateFormat; SimpleDateFormat java.text import java.util.*; util.* java public class Main {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String,Integer> map = new HashMap<String,Integer>();
        String temp = sc.nextLine();

        String[] tempArr = temp.split(" ");
        int N = Integer.parseInt(tempArr[0]);
        int M = Integer.parseInt(tempArr[1]);

        for (int m = 0; m < M; m++) {
            map.put((m + 1) + "", 0);
        }

        for (int n = 0; n < N; n++) {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        }

        int count = 0;
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == N) {
                count++;
            }
        }

        System.out.println(count);


    }

} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String,Integer> map = new HashMap<String,Integer>();
        String temp = sc.nextLine();

        String[] tempArr = temp.split(" ");
        int N = Integer.parseInt(tempArr[0]);
        int M = Integer.parseInt(tempArr[1]);

        for (int m = 0; m < M; m++) {
            map.put((m + 1) + "", 0);
        }

        for (int n = 0; n < N; n++) {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        }

        int count = 0;
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == N) {
                count++;
            }
        }

        System.out.println(count);


    } main {
        Scanner sc = new Scanner(System.in);
        Map<String,Integer> map = new HashMap<String,Integer>();
        String temp = sc.nextLine();

        String[] tempArr = temp.split(" ");
        int N = Integer.parseInt(tempArr[0]);
        int M = Integer.parseInt(tempArr[1]);

        for (int m = 0; m < M; m++) {
            map.put((m + 1) + "", 0);
        }

        for (int n = 0; n < N; n++) {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        }

        int count = 0;
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == N) {
                count++;
            }
        }

        System.out.println(count);


    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) Map<String,Integer> map = new HashMap<String,Integer>(); map new HashMap<String,Integer>() String temp = sc.nextLine(); temp sc.nextLine() sc.nextLine sc String[] tempArr = temp.split(" "); tempArr temp.split(" ") temp.split temp " " int N = Integer.parseInt(tempArr[0]); N Integer.parseInt(tempArr[0]) Integer.parseInt Integer tempArr[0] tempArr 0 int M = Integer.parseInt(tempArr[1]); M Integer.parseInt(tempArr[1]) Integer.parseInt Integer tempArr[1] tempArr 1 for (int m = 0; m < M; m++) {
            map.put((m + 1) + "", 0);
        } int m = 0; int m = 0; m 0 m < M m M m++ m++ m {
            map.put((m + 1) + "", 0);
        } {
            map.put((m + 1) + "", 0);
        } map.put((m + 1) + "", 0) map.put map (m + 1) + "" (m + 1) m 1 "" 0 for (int n = 0; n < N; n++) {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        } int n = 0; int n = 0; n 0 n < N n N n++ n++ n {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        } {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        } temp = sc.nextLine() temp sc.nextLine() sc.nextLine sc tempArr = temp.split(" ") tempArr temp.split(" ") temp.split temp " " int K = Integer.parseInt(tempArr[0]); K Integer.parseInt(tempArr[0]) Integer.parseInt Integer tempArr[0] tempArr 0 for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            } int k = 1; int k = 1; k 1 k <= K k K k++ k++ k {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            } {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            } map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1) map.put map Integer.parseInt(tempArr[k]) + "" Integer.parseInt(tempArr[k]) Integer.parseInt Integer tempArr[k] tempArr k "" map.get(Integer.parseInt(tempArr[k]) + "") + 1 map.get(Integer.parseInt(tempArr[k]) + "") map.get map Integer.parseInt(tempArr[k]) + "" Integer.parseInt(tempArr[k]) Integer.parseInt Integer tempArr[k] tempArr k "" 1 int count = 0; count 0 for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == N) {
                count++;
            }
        } Map.Entry<String, Integer> entry map.entrySet() map.entrySet map {
            if (entry.getValue() == N) {
                count++;
            }
        } {
            if (entry.getValue() == N) {
                count++;
            }
        } if (entry.getValue() == N) {
                count++;
            } entry.getValue() == N entry.getValue() entry.getValue entry N {
                count++;
            } count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args public class Main {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String,Integer> map = new HashMap<String,Integer>();
        String temp = sc.nextLine();

        String[] tempArr = temp.split(" ");
        int N = Integer.parseInt(tempArr[0]);
        int M = Integer.parseInt(tempArr[1]);

        for (int m = 0; m < M; m++) {
            map.put((m + 1) + "", 0);
        }

        for (int n = 0; n < N; n++) {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        }

        int count = 0;
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == N) {
                count++;
            }
        }

        System.out.println(count);


    }

} public class Main {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String,Integer> map = new HashMap<String,Integer>();
        String temp = sc.nextLine();

        String[] tempArr = temp.split(" ");
        int N = Integer.parseInt(tempArr[0]);
        int M = Integer.parseInt(tempArr[1]);

        for (int m = 0; m < M; m++) {
            map.put((m + 1) + "", 0);
        }

        for (int n = 0; n < N; n++) {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        }

        int count = 0;
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == N) {
                count++;
            }
        }

        System.out.println(count);


    }

} Main
import java.text.SimpleDateFormat;
import java.util.*;

public class Main {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String,Integer> map = new HashMap<String,Integer>();
        String temp = sc.nextLine();

        String[] tempArr = temp.split(" ");
        int N = Integer.parseInt(tempArr[0]);
        int M = Integer.parseInt(tempArr[1]);

        for (int m = 0; m < M; m++) {
            map.put((m + 1) + "", 0);
        }

        for (int n = 0; n < N; n++) {
            temp = sc.nextLine();
            tempArr = temp.split(" ");
            int K = Integer.parseInt(tempArr[0]);
            for (int k = 1; k <= K; k++) {
                map.put(Integer.parseInt(tempArr[k]) + "", map.get(Integer.parseInt(tempArr[k]) + "") + 1);
            }
        }

        int count = 0;
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == N) {
                count++;
            }
        }

        System.out.println(count);


    }

}
