小红的点构造
题号:NC314583
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}在平面直角坐标系中,定义两个点相邻,当且仅当它们的曼哈顿距离恰好为
\hspace{15pt}请你构造 n 个不重复的点(坐标均为整数),使得这些点中恰好有 k 对相邻的点。

【名词解释】
\hspace{15pt}曼哈顿距离:对于平面上的两个点 (x_1, y_1)(x_2, y_2),其曼哈顿距离为 \left|x_1 - x_2 \right| + \left|y_1 - y_2 \right|

输入描述:

\hspace{15pt}第一行输入两个整数 n, k \left(1 \leqq n, k \leqq 2\times 10^5 \right)

输出描述:

\hspace{15pt}如果无解,请输出 \texttt{No};否则在第一行输出 \texttt{Yes},之后输出 n 行,每行包含两个整数 x_i, y_i\left(-10^9 \leqq x_i, y_i \leqq 10^9 \right),表示一个点坐标 \left(x_i, y_i \right)

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
4 3

输出

复制
Yes
1 1
1 0
0 0
2 1
示例2

输入

复制
1 1

输出

复制
No