만드는 중입니다

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

N-Queen (특수)

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

요약
N x N 체스판에 이미 놓인 Q개의 퀸은 그대로 두고, 나머지 퀸을 서로 공격하지 않도록 배치하는 방법을 출력합니다. 배치가 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 9점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

N-Queen 문제는 크기가 N×NN \times N인 체스판 위에 퀸 NN개를 서로 공격할 수 없도록 놓는 문제이다. NN이 주어졌을 때 퀸을 놓는 방법 한 가지를 출력하는 것은 쉽다.

이 문제에서는 이미 놓여 있는 퀸이 몇 개 있을 때, 퀸을 놓는 방법 한 가지를 출력한다.

입력

첫 번째 줄에 NN과 이미 놓여 있는 퀸의 개수 QQ가 공백으로 구분되어 주어진다.

두 번째 줄부터 QQ개의 줄에 걸쳐 이미 놓여 있는 퀸의 위치가 주어진다. ii번째 줄에는 ii번째 퀸의 행 번호 r_ir\_i와 열 번호 c_ic\_i가 공백으로 구분되어 주어진다. (1≤r_i,c_i≤N)(1 \le r\_i, c\_i \le N)

같은 좌표에 퀸이 2개 이상 주어지는 입력은 없다. 퀸끼리 서로 공격하는 잘못된 상태의 입력이나, NN개의 퀸이 모두 이미 놓여 있는 입력은 주어지지 않는다.

출력

첫 번째 줄에 정수 A_1A\_1, A_2A\_2, A_3A\_3, ⋯\cdots, A_NA\_N을 출력한다. A_iA\_i는 ii번째 행에 있는 퀸의 열 번호이다. (1≤A_i≤N)(1 \le A\_i \le N)

NN개의 퀸을 놓을 수 없다면 -1을 출력한다.

제한

  • N=1002001N = 1002001
  • Q=1001Q = 1001
  • 이 문제의 채점 데이터는 1개뿐이다.

예제1

  1. 예제 1

    입력
    4 2
    4 3
    3 1
    
    예상 출력
    2 4 1 3