#include <bits/stdc++.h>
using namespace std;
int main() {
int n, i, j; scanf("%d%d%d", &n, &i, &j);
// UDLR 表示现在包出来的正方形的上下左右边界
int U = i, D = i;
int L = j, R = j;
printf("Yes\n%d\n", n - 1);
for (int k = 1; k < n; k++) {
if (U > 1 && L > 1) {
U--; L--;
printf("%d %d %d %d\n", U, L, D - U, R - L);
} else if (U > 1 && R < n) {
U--; R++;
printf("%d %d %d %d\n", U, R, D - U, L - R);
} else if (D < n && L > 1) {
D++; L--;
printf("%d %d %d %d\n", D, L, U - D, R - L);
} else {
D++; R++;
printf("%d %d %d %d\n", D, R, U - D, L - R);
}
}
return 0;
}