#P5852. [nerc 2022]King’s Puzzle

[nerc 2022]King’s Puzzle

背景

Kotlin王国的国王Kendrick正准备参加下届政府会议。Kotlin王国由nn座城市组成,这些城市需要通过若干双向道路连接。由于各个部门负责王国居民的安全和舒适,有些部门提出了以下要求:

  • “所有城市应当通过新建道路连接” —— 交通和数字基础设施部。
  • “不能有环路,即连接城市自身的道路” —— 环境部。
  • “每对城市之间至多有一条道路” —— 财政部。
  • “如果aia_i表示与第ii个城市相连的道路数,则集合{a1,,an}\{a_1, \dots, a_n\}应恰好包含kk个不同的数字” —— ICPC部。

国王Kendrick对于ICPC部的要求感到头疼。他请求你帮助他。找出满足所有要求的道路集合,或者说明这是不可能的。

描述

输入

输入的唯一一行包含两个整数nnkk,表示城市数量和所需的不同连接数(1kn500)(1 \leq k \leq n \leq 500)

输出

如果无法满足所有要求,输出一行NO

否则,第一行输出YES
第二行输出整数mm,表示道路的数量(0mn(n1)2)(0 \leq m \leq \frac{n(n-1)}{2})
接下来的mm行中,每行包含两个整数aabb,表示连接的城市(1a,bn)(1 \leq a, b \leq n)

示例

5 2
YES
4
1 2
1 3
1 4
1 5

4 1
YES
4
1 2
2 3
3 4
4 1