/* -*- coding: utf-8 -*- * * 3282.cc: No.3282 Photos and Friends - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 200000; /* typedef */ using ll = long long; /* global variables */ int xs[MAX_N], as[MAX_N], bs[MAX_N]; int cas[MAX_N], cbs[MAX_N]; /* subroutines */ /* main */ int main() { int n; ll p, q; scanf("%d%lld%lld", &n, &p, &q); for (int i = 0; i < n; i++) scanf("%d%d%d", xs + i, as + i, bs + i); ll r = 0; for (int i = 0; i < n; i++) { cas[i] = max(0, xs[i] - bs[i]); cbs[i] = max(0, xs[i] - as[i]); if (cas[i] + cbs[i] > xs[i]) { puts("No"); return 0; } p -= cas[i], q -= cbs[i]; r += xs[i] - (cas[i] + cbs[i]); } if (p >= 0 && q >= 0 && p + q >= r) { for (int i = 0; i < n; i++) { if (cas[i] + cbs[i] < xs[i] && p > 0) { int dp = min((ll)(xs[i] - (cas[i] + cbs[i])), p); cas[i] += dp, p -= dp; } if (cas[i] + cbs[i] < xs[i] && q > 0) { int dq = min((ll)(xs[i] - (cas[i] + cbs[i])), q); cbs[i] += dq, q -= dq; } } puts("Yes"); for (int i = 0; i < n; i++) printf("%d %d\n", cas[i], cbs[i]); } else puts("No"); return 0; }