GAIA 모듈 설치
시간 제한2.5초메모리 제한1024 MB
두 순열 p와 q로 각 슬롯에 p_i 또는 q_{p_i}를 골라, 금지된 두 모듈이 인접 슬롯에 놓이지 않는 배치를 찾고 없으면 -1을 출력합니다.
문제
GAIA 시스템에는 MINERVA, AETHER 등의 이름을 가진 모듈이 개 있다. 모듈에는 1부터 까지 번호가 붙어 있고, GAIA에 연결할 슬롯도 정확히 개 있다. 처음에는 모듈 가 슬롯 에 연결되어 있다.
모듈과 슬롯의 배치를 바꾸는 연산은 두 가지뿐이며, 길이 인 순열 와 로 주어진다. 연산 는 슬롯 에 연결된 모듈을 슬롯 로 옮긴다. 연산 도 같은 방식으로, 슬롯 에 연결된 모듈을 슬롯 에 다시 연결한다.
GAIA가 올바르게 작동하려면 와 의 부분 합성을 써서 각 모듈에 슬롯을 배정해야 한다. 즉 모든 에 대해 슬롯 에는 다음 중 하나가 연결되어 있어야 한다.
- 를 적용해서 얻은 모듈
- 를 적용한 뒤 를 적용해서 얻은 모듈
다시 말해 슬롯 에는 모듈 또는 모듈 를 넣을 수 있다. 각 의 선택은 다른 와 무관하게 할 수 있다.
시스템 제약이 개 주어진다. 각 제약은 모듈 를 모듈 와 인접한 슬롯에 둘 수 없다는 뜻이다.
입력
첫 줄에 두 정수 과 이 주어진다 (; ). 각각 모듈의 수와 제약의 수이다.
둘째 줄과 셋째 줄에는 순열 와 의 원소가 공백으로 구분되어 주어진다 (). 두 줄 모두 1부터 까지의 각 수가 정확히 한 번씩 나타난다.
이어지는 개의 줄에는 인접한 슬롯에 놓일 수 없는 모듈 번호 와 가 주어진다 (; ).
출력
가능한 배정이 없으면 을 출력한다.
그렇지 않으면 공백으로 구분한 정수 개를 출력한다. 번째 정수는 슬롯 가 에 해당하는 배정이면 1, 에 해당하는 배정이면 2이다.
조건을 만족하는 배정이 여러 개라면 그중 어느 것을 출력해도 된다.