만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

견제 미로찾기

시간 제한2초메모리 제한512 MB

요약
두 사람이 격자의 벽을 피해 말을 오른쪽이나 아래쪽으로 최대 K칸 옮기거나 K를 더 작은 약수로 바꾸는 게임에서 선공이 이기는지 판정합니다.
난이도

보통10점 중 7점

유형
게임 이론, 동적 계획법, 누적 합
정답자
아직 제출이 없습니다

문제

N×NN \times N 크기의 격자로 표현되는 미로가 있다. 미로의 좌상단은 (1,1)(1,1)이고 우하단은 (N,N)(N,N)이다. 00은 이동할 수 있는 길, 11은 이동할 수 없는 벽이 있는 칸을 뜻한다. 처음에 게임 말 하나가 (1,1)(1,1)에 놓여 있다. 건이와 준성이는 번갈아 가며 다음 두 가지 행동 중 하나를 취할 수 있다.

  1. 게임 말을 xx 또는 yy 좌표가 증가하는 방향으로 11 이상 KK 이하만큼, 한 방향으로만 이동한다. 벽이 있는 칸에 도착하거나 벽을 통과하여 이동할 수는 없다.
  2. KK를 KK보다 작은 KK의 양의 약수 중 하나로 변경한다.

자신의 차례에 아무 행동도 할 수 없는 사람이 패배한다. 게임은 건이부터 시작하며, 두 사람이 최선을 다해 게임을 진행했을 때 누가 이길지 구하시오.

입력

첫 번째 줄에 NN과 KK가 공백으로 구분되어 주어진다.

두 번째 줄부터 NN개의 줄에 미로의 정보가 공백으로 구분되어 주어진다.

출력

건이가 이기면 11, 준성이가 이기면 00을 출력한다.

제한

  • 1≤N≤3001 \leq N \leq 300
  • 1≤K≤N1 \leq K \leq N
  • NN, KK는 양의 정수이다.
  • 미로는 00 혹은 11로 이루어져 있다.
  • 미로의 (1,1)(1,1)은 00임이 보장된다.

예제2

  1. 예제 1

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

    입력
    3 3
    0 1 1
    0 0 0
    1 0 0
    
    예상 출력
    1