로테리아

주어진 각 행의 열별 합이 모든 목표 홀짝성과 일치하는 비어 있지 않은 부분집합이 존재하지 않도록 K개의 목표 홀짝성을 고를 수 있는지 판정한다.

보통5수학비트 연산완전 탐색구현아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

BWS 로테리아 복권 추첨은 매년 열린다. 참가자 NN명이 각각 수 KK개를 고르고, ii번째 참가자가 고른 jj번째 수를 Bi,jB_{i,j}라고 한다. 그다음 주최 측이 양의 정수 KK개를 고르며, 이 수를 W1,W2,,WKW_1, W_2, \dots, W_K라고 한다.

당첨은 다음 절차로 정해진다.

  • 참가자 NN명 중에서 비어 있지 않은 부분집합 하나를 무작위로 뽑는다.
  • 뽑힌 참가자가 고른 첫 번째 수를 모두 더한 값을 S1S_1이라고 한다. 즉 뽑힌 참가자의 번호를 ii라 하면 S1S_1Bi,1B_{i,1}의 합이다. 같은 방식으로 S2,,SKS_2, \dots, S_K를 구한다.
  • jj마다 WjW_jSjS_j의 홀짝이 같은지 확인한다.
  • 모든 jj에서 홀짝이 같으면 이 참가자 집합은 당첨이다.

주최 측은 어떤 부분집합도 당첨되지 않도록 W1,W2,,WKW_1, W_2, \dots, W_K를 고를 수 있는지 알고 싶다.

입력

첫째 줄에 참가자 수 NN과 참가자 한 명이 고르는 수의 개수 KK가 주어진다. (1N1041 \le N \le 10^4, 3K503 \le K \le 50)

다음 NN개의 줄에는 참가자가 고른 수 KK개가 한 줄에 한 명씩 주어진다. 참가자가 고르는 수는 11 이상 5050 이하의 정수다.

출력

어떤 부분집합도 당첨되지 않도록 W1,W2,,WKW_1, W_2, \dots, W_K를 고를 수 있으면 S를, 그렇지 않으면 N을 출력한다.