양의 정수 이 주어진다. 다음 조건을 모두 만족하는 트리가 존재하는지 판단하고, 존재한다면 하나를 구성하여라. 루트의 깊이는 으로 정의한다.
- 트리는 개의 정점으로 이루어져 있으며, 각 정점에는 의 번호가 하나씩 붙어 있다.
- 루트는 번 정점이다.
- 깊이가 홀수인 정점의 개수는 이다.
- 깊이가 짝수인 정점의 개수는 이다.
- 차수가 인 정점의 개수는 이다.
트리를 정확히 구성하지 못하더라도 존재 여부를 올바르게 판별하면 의 점수를 받을 수 있다. 자세한 내용은 Scoring 섹션을 참고하라.
Input
입력은 다음과 같은 형식으로 주어진다.
Output
트리가 존재하는 경우 다음과 같은 형식으로 출력하라.
여기서 는 트리의 ()번째 간선을 의미하며, 다음 조건을 만족해야 한다.
- ().
- ().
- ().
트리가 존재하지 않는 경우 다음과 같은 형식으로 출력하라.
Constraints
- .
- .
- .
Subtasks
Scoring
각 테스트케이스의 점수는 다음과 같이 부여된다.
- 존재 여부 판별이 올바르지 않으면 점.
- 존재 여부 판별은 올바르지만 답이 YES인 경우 트리가 올바르지 않으면 해당 서브태스크 배점의 (트리를 출력하지 않아도 된다.)
- 판별 여부와 트리가 모두 올바르면 해당 서브태스크 배점의 .
각 서브태스크의 점수는 해당 서브태스크에 속한 모든 테스트케이스의 점수 중 최솟값이다.
Samples
예제 1
입력
1 1 1
출력
NO
이 예제는 서브태스크 1, 2, 5, 7, 11, 12의 조건을 만족한다.
예제 2
입력
2 2 2
출력
YES
1 2
2 3
3 4
이 예제는 서브태스크 3, 4, 6, 7, 9, 10, 11, 12의 조건을 만족한다.
예제 3
입력
2 3 2
출력
YES
1 2
2 3
3 4
4 5
이 예제는 서브태스크 3, 6, 8, 10, 11, 12의 조건을 만족한다.
예제 4
입력
3 3 4
출력
YES
1 2
1 3
1 4
2 5
2 6
이 예제는 서브태스크 7, 9, 10, 11, 12의 조건을 만족한다.
예제 5
입력
5 2 2
출력
NO
이 예제는 서브태스크 4, 6, 11, 12의 조건을 만족한다.