이진 행렬
시간 제한0.5초메모리 제한512 MB
n×n 이진 행렬 K가 주어질 때, 앞선 거듭제곱 K^m과 같아지는 가장 작은 지수 k를 구합니다. 각 원소는 2로 나눈 나머지로 계산합니다.
문제
키파는 율이에게서 0과 1로 채워진 n × n 표를 선물로 받았습니다. 키파는 이 표를 행렬로 보고 라는 이름을 붙였습니다. 의 각 성분이 0 또는 1이라는 점이 마음에 든 키파는, 계산 결과의 각 성분도 짝수이면 0, 홀수이면 1로 적기로 했습니다.
먼저 덧셈으로 , , 를 계산해 보았지만, 의 모든 성분이 0이라 금방 싫증이 났습니다. 그래서 곱셈을 해 보기로 했습니다. , , , ...을 계산하던 키파는 어느 순간 같은 계산을 반복하고 있다는 것을 알아챘습니다.
같은 계산을 반복하는 일은 컴퓨터가 해야 한다고 생각한 키파는, 로 곱셈을 하다가 언제 싫증이 날지 궁금해졌습니다. 키파가 예전 계산 결과를 다시 보게 될 때, 그 곱셈 식에 가 몇 번 곱해져 있는지 출력하는 프로그램을 작성해 주세요.
입력
첫째 줄에 행렬의 크기 이 주어집니다.
둘째 줄부터 개의 줄에 공백으로 구분된 개의 수가 주어집니다. 모든 수는 0 또는 1입니다.
출력
키파가 예전 계산 결과를 다시 보게 될 때, 그 곱셈 식에 곱해진 의 개수를 출력합니다.
힌트
수학적으로 엄밀하게 말하면, 행렬 가 주어졌을 때 자연수 집합의 부분집합
의 최소 원소를 출력하는 문제입니다.