大意: 求构造n个pair, 每个pair满足
对于每k组, 让$b_i$为$[1,k]$, $g_i$循环右移就好了
int n, k, cnt; int main() {
scanf("%d%d", &n, &k);
if (n>(ll)k*(k-1)) return puts("NO"),0;
puts("YES");
int cnt = 0;
REP(i,1,n) {
int cur = i+1;
REP(j,1,k) {
printf("%d %d\n",j,cur);
if (++cnt==n) return 0;
if (++cur==k+1) cur = 1;
}
}
}