#include #include #include using u32 = unsigned int; using i64 = long long; using u64 = unsigned long long; using v32 = std::vector; using v64 = std::vector; void solve() { i64 N, P, Q; std::cin >> N >> P >> Q; v64 X(N), A(N), B(N); v64 L(N), R(N); for (int i = 0; i < N; i++) { std::cin >> X[i] >> A[i] >> B[i]; if (X[i] > A[i] + B[i]) { std::cout << "No\n"; return; } i64 p = std::max(X[i] - B[i], 0LL); P -= (L[i] = p); i64 q = std::max(X[i] - A[i], 0LL); Q -= (R[i] = q); } if (P < 0 || Q < 0) { std::cout << "No\n"; return; } for (int i = 0; i < N; i++) { i64 diff = std::min(P, X[i] - L[i] - R[i]); L[i] += diff; P -= diff; diff = std::min(Q, X[i] - L[i] - R[i]); R[i] += diff; Q -= diff; if (L[i] + R[i] < X[i]) { std::cout << "No\n"; return; } } std::cout << "Yes\n"; for (int i = 0; i < N; i++) { std::cout << L[i] << " " << R[i] << '\n'; } } signed main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); int T = 1; // std::cin >> T; while (T--) solve(); return 0; }