의식의 광장
시간 제한2초메모리 제한1024 MB
가로로 움직이는 N개의 단위 정사각형에 서로 다른 이동 거리를 배정해 이동 중 겹치지 않고 도착 열도 모두 다르게 만든다.
문제
도시가 완성된 뒤, 사람들은 그 빛을 기념하기 위한 의식을 열었다. 마을의 광장에는 작은 빛의 점들이 놓였고, 각각은 고유한 빛을 머금은 채 조용히 빛났다.
이제, 의식의 다음 단계가 시작된다. 각 빛은 정해진 방향으로 흘러가며, 새로운 자리를 비추기 시작한다. 빛은 그 이동 경로를 따라 퍼지며, 그 길이와 흐름은 서로 겹치지 않도록 조율되어야 한다.
그들이 정리한 빛의 방향과 흐름을 되짚고, 빛이 퍼져나가는 장면을 다시 완성해 보아라.
광장의 바닥은 격자로 이루어져 있으며, 위아래로는 총 행이며 좌우로는 충분히 넓다. 위에서부터 번째 행, 왼쪽에서부터 번째 열의 칸을 로 표기한다.
사람들은 이곳에 개의 빛을 배치했다. 의식의 흐름에 따라, 각 빛은 오른쪽 방향(열 번호가 증가하는 방향)으로 일정 거리만큼 이동해야 한다.
빛의 움직임을 구현하는 것은 어려운 일이기 때문에, 몇 가지 제약 조건이 있다.
- 각 빛은 크기의 정사각형 판의 중심에 고정되어 있다.
- 개의 빛이 놓인 판은 각각 이상 이하의 서로 다른 정수 거리만큼 이동해야 한다.
- 개의 판은 동시에 이동을 시작하고, 동시에 도착하며, 이동 중에는 일정한 속도를 유지해야 한다.
- 이동 중 두 판이 겹쳐서는 안 된다. 단, 경계가 닿는 것은 괜찮다.
- 이동이 끝난 후, 모든 빛은 서로 다른 열에 위치해야 한다.
예를 들어, , 이고, 빛의 시작 위치가 각각 인 경우를 생각해 보자. 아래 그림에서 각 빛 판의 위치는 서로 다른 색의 정사각형으로 표시되어 있다.

이때 다음과 같은 방식으로 이동 거리를 배정하면 모든 조건을 만족하게 된다.
아래는 빛의 이동 과정을 시간 순서대로 나타낸 그림이다. 각 그림은 이동이 시작된 시점, 이동 중간의 시점, 이동이 끝난 시점의 빛의 위치를 나타낸다.

빛의 흐름이 겹치지 않도록 이동 거리를 배정할 수 있는지 판단하고, 가능하다면 그 방법을 구하라.
입력
첫 줄에 두 정수 와 이 공백으로 구분되어 주어진다.
이후 개의 줄에 걸쳐, 각 빛의 시작 위치를 나타내는 두 정수 , 가 공백으로 구분되어 주어진다. 이는 번째 빛의 시작 위치가 라는 뜻이다.
출력
만약 조건을 만족하도록 빛의 이동 거리를 배정할 수 있다면, 첫째 줄에 YES를 출력한다.
둘째 줄에는 개의 정수 을 공백으로 구분해 출력한다. 이는 번째 빛이 오른쪽으로 만큼 움직여야 한다는 의미이다. 가능한 방법이 여러 가지라면 그중 아무것이나 출력해도 좋다.
만약 조건을 만족하도록 빛의 이동 거리를 배정할 수 없다면, 첫째 줄에 NO를 출력한다.