만드는 중입니다

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

GAIA 모듈 설치

시간 제한2.5초메모리 제한1024 MB

요약
두 순열 p와 q로 각 슬롯에 p_i 또는 q_{p_i}를 골라, 금지된 두 모듈이 인접 슬롯에 놓이지 않는 배치를 찾고 없으면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
그래프, DFS
정답자
아직 제출이 없습니다

문제

GAIA 시스템에는 MINERVA, AETHER 등의 이름을 가진 모듈이 nn개 있다. 모듈에는 1부터 nn까지 번호가 붙어 있고, GAIA에 연결할 슬롯도 정확히 nn개 있다. 처음에는 모듈 ii가 슬롯 ii에 연결되어 있다.

모듈과 슬롯의 배치를 바꾸는 연산은 두 가지뿐이며, 길이 nn인 순열 pp와 qq로 주어진다. 연산 pp는 슬롯 pip_i에 연결된 모듈을 슬롯 ii로 옮긴다. 연산 qq도 같은 방식으로, 슬롯 qiq_i에 연결된 모듈을 슬롯 ii에 다시 연결한다.

GAIA가 올바르게 작동하려면 pp와 qq의 부분 합성을 써서 각 모듈에 슬롯을 배정해야 한다. 즉 모든 ii에 대해 슬롯 ii에는 다음 중 하나가 연결되어 있어야 한다.

  • pp를 적용해서 얻은 모듈
  • pp를 적용한 뒤 qq를 적용해서 얻은 모듈

다시 말해 슬롯 ii에는 모듈 pip_i 또는 모듈 (q∘p)i=qpi(q \circ p)_i = q_{p_i}를 넣을 수 있다. 각 ii의 선택은 다른 ii와 무관하게 할 수 있다.

시스템 제약이 mm개 주어진다. 각 제약은 모듈 aia_i를 모듈 bib_i와 인접한 슬롯에 둘 수 없다는 뜻이다.

입력

첫 줄에 두 정수 nn과 mm이 주어진다 (1⩽n⩽2⋅1051 \leqslant n \leqslant 2 \cdot 10^5; 0⩽m⩽2⋅1050 \leqslant m \leqslant 2 \cdot 10^5). 각각 모듈의 수와 제약의 수이다.

둘째 줄과 셋째 줄에는 순열 pp와 qq의 원소가 공백으로 구분되어 주어진다 (1⩽pi,qi⩽n1 \leqslant p_i, q_i \leqslant n). 두 줄 모두 1부터 nn까지의 각 수가 정확히 한 번씩 나타난다.

이어지는 mm개의 줄에는 인접한 슬롯에 놓일 수 없는 모듈 번호 aia_i와 bib_i가 주어진다 (1⩽ai,bi⩽n1 \leqslant a_i, b_i \leqslant n; ai≠bia_i \neq b_i).

출력

가능한 배정이 없으면 −1-1을 출력한다.

그렇지 않으면 공백으로 구분한 정수 nn개를 출력한다. ii번째 정수는 슬롯 ii가 pp에 해당하는 배정이면 1, q∘pq \circ p에 해당하는 배정이면 2이다.

조건을 만족하는 배정이 여러 개라면 그중 어느 것을 출력해도 된다.

예제3

  1. 예제 1

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

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

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