import 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 X[] = new int[M];
    for(int a=0; a<M; a++) {
      X[a] = 0;
    }
    int K;
    int count =0;
    
    for(int i=0; i<N; i++) {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    }
    for(int k=0; k<M; k++) {
      if(X[k] == N) {
        count++;
      }
    }
    System.out.println(count);
  }
} import java.util.*; util.* java public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M = sc.nextInt();
    int X[] = new int[M];
    for(int a=0; a<M; a++) {
      X[a] = 0;
    }
    int K;
    int count =0;
    
    for(int i=0; i<N; i++) {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    }
    for(int k=0; k<M; k++) {
      if(X[k] == N) {
        count++;
      }
    }
    System.out.println(count);
  }
} Main public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M = sc.nextInt();
    int X[] = new int[M];
    for(int a=0; a<M; a++) {
      X[a] = 0;
    }
    int K;
    int count =0;
    
    for(int i=0; i<N; i++) {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    }
    for(int k=0; k<M; k++) {
      if(X[k] == N) {
        count++;
      }
    }
    System.out.println(count);
  } main {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M = sc.nextInt();
    int X[] = new int[M];
    for(int a=0; a<M; a++) {
      X[a] = 0;
    }
    int K;
    int count =0;
    
    for(int i=0; i<N; i++) {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    }
    for(int k=0; k<M; k++) {
      if(X[k] == N) {
        count++;
      }
    }
    System.out.println(count);
  } 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 X[] = new int[M]; X new int[M] M for(int a=0; a<M; a++) {
      X[a] = 0;
    } int a=0; int a=0; a 0 a<M a M a++ a++ a {
      X[a] = 0;
    } {
      X[a] = 0;
    } X[a] = 0 X[a] X a 0 int K; K int count =0; count 0 for(int i=0; i<N; i++) {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    } int i=0; int i=0; i 0 i<N i N i++ i++ i {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    } {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    } K = sc.nextInt() K sc.nextInt() sc.nextInt sc int A; A for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      } int j=0; int j=0; j 0 j<K j K j++ j++ j {
        A = sc.nextInt();
        X[A-1]++;
      } {
        A = sc.nextInt();
        X[A-1]++;
      } A = sc.nextInt() A sc.nextInt() sc.nextInt sc X[A-1]++ X[A-1] X A-1 A 1 for(int k=0; k<M; k++) {
      if(X[k] == N) {
        count++;
      }
    } int k=0; int k=0; k 0 k<M k M k++ k++ k {
      if(X[k] == N) {
        count++;
      }
    } {
      if(X[k] == N) {
        count++;
      }
    } if(X[k] == N) {
        count++;
      } X[k] == N X[k] X k 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);
    int N = sc.nextInt();
    int M = sc.nextInt();
    int X[] = new int[M];
    for(int a=0; a<M; a++) {
      X[a] = 0;
    }
    int K;
    int count =0;
    
    for(int i=0; i<N; i++) {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    }
    for(int k=0; k<M; k++) {
      if(X[k] == N) {
        count++;
      }
    }
    System.out.println(count);
  }
} public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M = sc.nextInt();
    int X[] = new int[M];
    for(int a=0; a<M; a++) {
      X[a] = 0;
    }
    int K;
    int count =0;
    
    for(int i=0; i<N; i++) {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    }
    for(int k=0; k<M; k++) {
      if(X[k] == N) {
        count++;
      }
    }
    System.out.println(count);
  }
} Main
import 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 X[] = new int[M];
    for(int a=0; a<M; a++) {
      X[a] = 0;
    }
    int K;
    int count =0;
    
    for(int i=0; i<N; i++) {
      K = sc.nextInt();
      int A;
      for(int j=0; j<K; j++) {
        A = sc.nextInt();
        X[A-1]++;
      }
    }
    for(int k=0; k<M; k++) {
      if(X[k] == N) {
        count++;
      }
    }
    System.out.println(count);
  }
}