心灵迷宫
题号:NC229812
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

传说中,觉是一种能看透人心的妖怪,她能看破每个人说的话是否是谎言。

蜃气楼的妖怪一共有 n 种,人类为这 n 种妖怪设定了 m 种共通的评价体系(如按照恐怖度评价、按照知名度评价等)。在每种评价体系下,每个妖怪都获得了一个 之间的排名值,且所有妖怪的排名值两两不同。如果某个妖怪在某种评价体系下的排名值越小,说明该妖怪在这个评价体系下也更靠前。

每个妖怪都希望自己的排名听起来尽可能地靠前,因此在自我介绍时,会告诉其余妖怪自己在 m 种评价体系下最小的排名值。当然,也有妖怪可能说谎,告诉了其余妖怪一个虚假的排名值。

觉已经看透了这些妖怪的想法,但是她正忙着手上的活儿,因此请你帮忙判断是否存在一种排名方式,使得 n 个妖怪说的话全部能够满足。

输入描述:

第一行为两个用空格分隔的整数 n, m (),含义如题所示。

第二行为 n 个用空格分隔的整数 ,依次表示第 i 个妖怪在 m 种评价体系下最小的排名值。保证

输出描述:

如果存在一种排名方式,使得 n 个妖怪说的话全部能够满足,则输出 ,否则输出 

若第一行输出 ,则额外输出 n 行,每一行为 m 个用空格分隔的整数,其中第 i 行的整数依次表示第 i 个妖怪在 m 种评价体系下的排名值。若有多种符合条件的排名方式,则任意输出一种即可。
示例1

输入

复制
3 2
1 2 1

输出

复制
Yes
1 2 
2 3 
3 1
示例2

输入

复制
3 2
2 3 3

输出

复制
No