#P5271. OwenOwl 不学车也不删库

OwenOwl 不学车也不删库

Description

pp 是一个质数。

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

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

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

Input Format

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

Output Format

如果无解,输出一行 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

Hint

对于 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,但仍请注意控制输出所花费的时间。