지구평면설
시간 제한2초메모리 제한1024 MB
N x N 격자의 모든 칸을 같은 값으로 만들도록 행과 열에 곱할 0이 아닌 수를 고르고, 서로 다른 곱셈 값의 개수를 최소화합니다.
문제
찬우는 지구평면설을 지지한다. 그래서 그는 이를 증명하려고 포스텍을 평평하게 만들 것이다! 포스텍의 지면 높이 분포는 행렬로 표현된다. 찬우는 모든 에 대해 아래의 두 작업을 모두 수행해서 포스텍의 제각각인 지면 높이를 전부 같게 만들려고 한다.
- 번째 행의 모든 수에 이 아닌 임의의 수 를 곱한다.
- 번째 열의 모든 수에 이 아닌 임의의 수 를 곱한다.
각 가 정수일 필요는 없다.
하지만 찬우는 게으름뱅이라서 곱해야 할 수의 종류가 늘어나는 것을 싫어한다. 그래서 의 값을 적절히 정해, 수열에 등장하는 서로 다른 수의 개수가 최소가 되도록 하고 싶어 한다. 찬우를 위해 수열 에 등장하는 수의 종류를 최소로 만들어 주자!
입력
첫 번째 줄에 이 주어진다. ()
두 번째 줄부터 개의 줄에 걸쳐, 각 줄마다 개의 정수 가 공백으로 구분되어 주어진다. 는 행 열에 있는 포스텍의 지면 높이이다. (; )
출력
조건을 만족하는 에 등장하는 서로 다른 수의 개수의 최솟값을 출력한다. 포스텍을 평평하게 만들 수 있는 이 없으면 -1을 출력한다.
힌트
⚠️ 실제 포스텍의 환경과 다릅니다. ⚠️