비슷한 배열
시간 제한1초메모리 제한512 MB
비교하는 위치 쌍들이 주어질 때, 모든 원소가 서로 다른 배열과 같은 값이 두 번 이상 나오는 배열 중 주어진 모든 비교 결과가 일치하는 두 배열을 찾아 출력한다.
문제
Vasya는 부터 까지의 정수 개로 이루어진 배열을 가지고 있었다. 그는 서로 다른 위치 쌍을 골라 종이에 적었다. 그런 다음 그 위치에 있는 원소를 비교하고, 비교 결과를 다른 종이에 적었다. 각 쌍마다 "크다", "작다", "같다" 중 하나를 적었다.
몇 년 후 그는 첫 번째 종이를 찾았지만 두 번째 종이는 찾지 못했다. 또한 자신이 가지고 있던 배열도 기억하지 못한다. 특히 배열에 같은 원소가 있었는지도 기억하지 못한다. 그는 이 슬픈 이야기를 정보 선생님 Dr Helen에게 말했다.
선생님은 Vasya가 두 번째 종이를 찾더라도 배열에 같은 원소 두 개가 있었는지 알아낼 수 없을 수도 있다고 말했다.
이제 Vasya는 길이가 각각 인 정수 배열 두 개를 찾으려고 한다. 첫 번째 배열의 모든 원소는 서로 달라야 하고, 두 번째 배열에는 같은 원소 두 개가 있어야 한다. 첫 번째 종이에 적힌 각 위치 쌍에 대해, 첫 번째 배열의 해당 원소들과 두 번째 배열의 해당 원소들에 대한 비교 결과가 같아야 한다.
Vasya가 길이 인 두 배열을 찾도록 도와주거나, 주어진 위치 쌍들에 대해 그러한 배열이 존재하지 않음을 알아내라.
입력
첫째 줄에 정수 , 이 주어진다. 은 배열의 원소 수이고 은 Vasya가 수행한 비교의 수이다(, ).
다음 개 줄 각각에는 정수 , 가 주어진다. 이는 번째 비교의 위치이다(; ). 같은 순서 없는 쌍은 입력에 많아야 한 번 주어진다.
출력
비교 결과가 같고, 첫 번째 배열의 모든 수가 서로 다르며, 두 번째 배열에 같은 수 두 개가 있는 두 배열이 존재하면 첫째 줄에 "YES"를 출력한다. 그렇지 않으면 "NO"를 출력한다.
배열이 존재하면 둘째 줄에 서로 다른 정수로 이루어진 배열을, 셋째 줄에 같은 원소 쌍이 적어도 하나 있는 배열을 출력한다. 배열의 원소는 부터 까지의 정수여야 한다.