import java.util.PriorityQueue; import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int q = sc.nextInt(); for (int z = 0; z < q; z++) { int d = sc.nextInt(); int k = sc.nextInt(); PriorityQueue que = new PriorityQueue<>( (o1, o2) -> Double.compare(o1.d, o2.d)); if (d == 0) { que.add(new Obj(0, 0, 0)); } else { for (int i = 0; i < d; i++) { que.add(new Obj(i, d - i, Math.hypot(i, d - i))); que.add(new Obj(d - i, -i, Math.hypot(d - i, -i))); que.add(new Obj(-i, i - d, Math.hypot(-i, i - d))); que.add(new Obj(i - d, i, Math.hypot(i - d, i))); } } if (que.size() < k) { System.out.println("No"); } else { System.out.println("Yes"); for (int i = 1; i < k; i++) { que.poll(); } Obj o = que.poll(); System.out.println(o.x + " " + o.y); } } sc.close(); } static class Obj { int x, y; double d; public Obj(int x, int y, double d) { this.x = x; this.y = y; this.d = d; } } }