학년 통폐합

인접 학년이 교실을 함께 쓸 때 서로 수업할 수 없는 반 쌍을 버려야 하므로, 교실 m개로 최대한 많은 반을 배정하는 최댓값을 구한다.

보통7동적 계획법그래프이분 탐색그리디아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

영선이가 다니는 sys학교는 자연재해를 겪어 일부 교실을 쓸 수 없게 되었다. 지금 쓸 수 있는 교실은 mm개다. 학교에는 1학년부터 nn학년까지 있고, ii학년에는 반이 aia_i개 있다.

교실이 모자라서 한 학년의 모든 반은 한 교실에 몰아넣는다. 그래도 모자라면 교육 수준이 그나마 비슷한 인접한 두 학년의 모든 반을 한 교실에 넣는다. 예를 들어 2학년은 1학년이나 3학년 중 한쪽과 교실을 같이 쓸 수 있다.

같은 학년의 반끼리는 공통으로 듣는 과목이 있어서 한 교실에 들어가도 문제가 없다. 하지만 학년이 다르면 한 학년 차이라도 문이과 차이나 선택과목 차이 때문에 도저히 같이 수업을 들을 수 없는 반 쌍이 생긴다. 인접한 두 학년이 한 교실을 쓸 때, 같이 들을 수 없는 두 반 중 한쪽은 버려져서 교실을 배정받지 못한다.

형평성 때문에 두 학년이 한 교실을 쓰는 경우는 있어도 한 학년이 교실 두 개를 쓰는 경우는 없다. 결국 각 학년은 교실 하나를 혼자 쓰거나, 인접한 한 학년과 교실 하나를 같이 쓰거나, 교실을 아예 배정받지 못한다. 한 교실에 세 학년 이상이 들어가는 일도 없다.

교실 mm개를 이렇게 배정할 때 교실을 배정받는 반의 개수를 최대로 만들려고 한다. 그 최댓값을 출력하시오.

입력

첫째 줄에 학년 수 nn과 쓸 수 있는 교실 수 mm이 주어진다. (1n501 \le n \le 50, n/2mn\lfloor n/2 \rfloor \le m \le n)

이어서 1학년부터 nn학년까지 차례로 각 학년의 정보가 주어진다. 각 학년의 정보는 그 학년의 반 수 aia_i가 한 줄에 주어지는 것으로 시작한다. (1ai1001 \le a_i \le 100)

i<ni < n인 학년은 그 뒤에 aia_i개의 줄이 이어진다. 그중 jj번째 줄은 ii학년 jj번 반이 i+1i+1학년의 반 가운데 같이 들을 수 없는 반의 개수 bb와 그 반들의 번호 bb개를 담는다. (0bai+10 \le b \le a_{i+1}, 번호는 1 이상 ai+1a_{i+1} 이하이고 서로 다르다)

최고 학년인 nn학년은 반의 수 ana_n만 주어진다.

출력

교실을 가장 잘 배정했을 때 교실을 배정받는 반의 개수의 최댓값을 첫째 줄에 출력하시오.