重云的阵法书上记录了一个特别有意思的阵法。这个阵法是一个 n*n 的棋盘,棋盘上有多个象棋中的“马”棋子。马只有如图所示的移动方式: 即如果“马”在棋盘上的坐标是 (x,y) ,那么它在一次移动后所能到达的地方的坐标只有可能是 (x-2,y+1),(x-2,y-1),(x-1,y-2),(x+1,y-2)
另外,棋子不能移动出棋盘边界,即棋子移动后 x 坐标和 y 坐标都不能小于 1 。且棋盘最左下角格子的坐标是 (1,1) 。
重云将一个写字非常难看的鬼怪困在这个阵法后,重云会首先移动棋盘中的每个可以移动的“马”,然后鬼怪也会移动棋盘中的每个可以移动的“马”,如此交替操作,直到棋盘中没有马可以被移动,多个马可以重合在棋盘上的同一个位置。
当重云首先遇到没有可以移动的马的情况时,鬼怪就会逃脱,否则鬼怪就会被消灭。
重云的阵法中有太多的马了,很难计算,请你帮忙计算,如果双方都按最优情况行动,鬼怪是否一定能被消灭。如果鬼怪一定能被消灭,请给出重云第一轮该如何移动每个马使得鬼怪一定会被消灭。(题目保证每个马至少能在棋盘上行动一次,且一开始不会有马重合)
输入
第一行包括两个整数 K(1 \leq K \leq 2 \times 10^5),N(1 \leq N \leq 10^6),以空格间隔。
接下来有 K 行来描述 K 个马的位置。
第 i+1 行有两个整数 x_i,y_i(1 \leq x_i,y_i \leq N) ,以空格间隔,表示第 i 个马在棋盘中的坐标
输出
如果鬼怪一定能被消灭,输出“YES”,否则输出”NO”。
如果前面输出的是“YES”,接下来输出 K 行。
第 i+1 行输出 x_i,y_i ,表示如果要一定能消灭鬼怪,重云第一轮,第 i 个马要移动到的位置。
如果有多种移动马的方案,输出任意一种即可。
样例
标准输入 复制文本 |
5 5 3 5 3 2 2 3 2 4 4 5 |
标准输出 复制文本 |
YES 1 4 1 1 1 1 1 2 5 3 |