#P5271. OwenOwl 不学车也不删库

OwenOwl 不学车也不删库

题目背景

神 mcfx 和神 ComeIntoPower 没事就瞎编题目背景。OwenOwl 去问基佬 zcysky 他们这么做的原因,基佬 zcysky 却这样答复:

OwenOwl 非常郁闷,于是他有一天找到了神 J,让神 J 造了 20010910 个指针把他们三个指到阿塞拜疆去陪 sunset 阿克了。

他们三个游览阿塞拜疆的时候,OwenOwl 就把车砸了,库恢复了。

但是因为神 mcfx 和神 ComeIntoPower 之前以 OwenOwl 这个 ID 出了太多毒瘤题,OwenOwl 早就风评被害了。为了证明毒瘤的是他俩,不是自己,OwenOwl 就出了道签到题。

题目描述

pp 是一个质数。

你有一个 pkp^k 个点的无向完全图(任意两个点之间有一条无向边),点的标号是 00pk1p^k-1

现在你需要从中找出一些 pp 个点的完全图,使得原图中每条边属于且恰好属于其中一个完全图。

很显然你需要找出的完全图的个数是 pk(pk1)/2p(p1)/2\frac{p^k(p^k-1)/2}{p(p-1)/2} ,可以发现这个式子一定是整数

输入格式

一行两个正整数 p,kp,k

输出格式

如果无解,输出一行 NO

否则输出一行 YES,接下来输出 pk(pk1)/2p(p1)/2\frac{p^k(p^k-1)/2}{p(p-1)/2} 行,每行 pp 个数表示你找出的这个完全图的点的编号。

按任意顺序输出任意一种方案即可。

2 2
YES
0 1
2 0
3 0
1 2
1 3
3 2
3 1
YES
0 1 2

提示

对于 10%10\% 的数据,k1k \le 1

对于 50%50\% 的数据,k2k \le 2

另有 20%20\% 的数据,p=2p = 2

对于 100%100\% 的数据,kk 是正整数,pp 是质数,2pk20002 \le p^k \le 2000

另外,保证输出总量不超过 2MB,但仍请注意控制输出所花费的时间。