만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

래환이의 수강신청 대작전

면접 대비

시간 제한1초메모리 제한1024 MB

요약
학생별로 S_1부터 S_{N-1}까지의 수강 정보가 주어질 때, 모든 학생의 수강 집합이 비지 않고 서로 달라지도록 S_N을 듣는 학생 조합의 수를 구합니다.
난이도

보통10점 중 5점

유형
비트 연산, 해시맵, 조합론
정답자
아직 제출이 없습니다

문제

한과영에는 NN개의 과목 S1,S2,⋯ ,SNS_1, S_2, \cdots, S_N이 있고, 래환이와 1번부터 MM번까지의 학번이 부여된 MM명의 학생들이 있다. 모든 학생은 최소 하나 이상의 과목을 신청해야 하며, 신청한 과목이 완전히 동일한 학생 쌍은 존재해서는 안 된다.

래환이는 과목 SNS_N을 신청하면 같이 듣게 될 학생들의 조합이 궁금하다. 과목 S1,S2,⋯ ,SN−1S_1, S_2, \cdots, S_{N-1}을 신청하는 학생들의 학번이 주어졌을 때, 과목 SNS_N을 신청하는 학생들의 가능한 조합의 가짓수를 구하는 프로그램을 작성하시오. 래환이 자신의 신청 여부는 고려하지 않으며, 오직 MM명의 학생들의 조합만 고려한다. 아무도 과목 SNS_N을 신청하지 않는 경우도 가능하다.

입력

첫 번째 줄에는 두 정수 NN(2≤N≤302 \le N \le 30)과 MM(1≤M≤301 \le M \le 30)이 주어진다.

다음 N−1N-1개의 줄 중 ii번째 줄에는 SiS_i를 신청하는 학생 수와 SiS_i를 신청하는 학생들의 학번이 공백으로 구분되어 주어진다. SiS_i를 신청하는 학생이 없다면 해당 줄에는 00 하나만 주어진다.

출력

과목 SNS_N을 신청하는 학생들의 가능한 조합의 가짓수를 출력한다. 가능한 조합이 없다면 00을 출력한다.

예제1

  1. 예제 1

    입력
    3 5
    3 1 2 5
    3 3 4 5
    
    예상 출력
    8