아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

부분합

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

요약
이진 행렬에 2차원 누적 합 연산을 GF(2) 위에서 반복 적용할 때 원래 행렬로 돌아오는 최소 양의 반복 횟수를 구한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 누적 합, 비트 연산
정답자
아직 제출이 없습니다

문제

nn개의 행과 mm개의 열로 이루어진 행렬 A0A_0가 있다. 행과 열은 1부터 시작하는 연속한 자연수로 번호가 매겨진다. 행렬의 각 원소는 0 또는 1이다. ii번째 행과 jj번째 열이 만나는 위치의 원소를 A0[i,j]A_0[i, j]라고 쓰자.

무한한 행렬열 AkA_k를 생각하자. k>0k > 0인 행렬 AkA_k도 nn개의 행과 mm개의 열로 이루어지며, Ak−1A_{k-1}의 부분합을 2로 나눈 나머지로 이루어진 행렬이다. 즉, 다음과 같다.

Ak[i,j]=∑1≤u≤i∑1≤v≤jAk−1[u,v]mod  2A_k[i, j] = \sum_{1 \le u \le i} \sum_{1 \le v \le j} A_{k-1}[u, v] \mod 2

AkA_k와 A0A_0가 모든 원소에서 같아지는 최소의 k>0k > 0을 구하라.

입력

첫째 줄에 행렬 A0A_0의 행의 수와 열의 수를 나타내는 두 정수 nn과 mm이 주어진다. 다음 nn개의 줄에는 행렬의 각 행이 주어진다. 각 줄은 mm개의 문자로 이루어지며, 각 문자는 00 또는 11이다.

출력

문제의 답인 kk를 한 줄에 출력한다.

제한

  • 1≤n,m≤1061 \le n, m \le 10^6
  • n×m≤106n \times m \le 10^6

예제2

  1. 예제 1

    입력
    1 1
    1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    4 2
    00
    01
    10
    11
    
    예상 출력
    4