#include namespace nono { void solve() { constexpr int D = 100; std::vector good_points(D + 1, std::vector>()); for (int i = -D; i <= D; i++) { for (int j = -D; j <= D; j++) { int d = std::abs(i) + std::abs(j); if (d <= D) { good_points[d].emplace_back(i * i + j * j, i, j); } } } for (int i = 0; i <= D; i++) { std::ranges::sort(good_points[i]); } int q; std::cin >> q; while (q--) { int d, k; std::cin >> d >> k; if ((int)good_points[d].size() >= k) { std::cout << "Yes" << std::endl; std::cout << std::get<1>(good_points[d][k - 1]) << ' ' << std::get<2>(good_points[d][k - 1]) << std::endl; } else { std::cout << "No" << std::endl; } } } } // namespace nono int main() { std::cin.tie(0)->sync_with_stdio(false); std::cout << std::fixed << std::setprecision(15); int t = 1; while (t--) nono::solve(); }