############################################################# import sys sys.setrecursionlimit(10**7) from heapq import heappop,heappush from collections import deque,defaultdict,Counter from bisect import bisect_left, bisect_right from itertools import product,combinations,permutations ipt = sys.stdin.readline def iin(): return int(ipt()) def lmin(): return list(map(int,ipt().split())) MOD = 998244353 ############################################################# M = 110 for _ in range(iin()): D,K = lmin() ans = [] for i in range(-M,M): for j in range(-M,M): if abs(i)+abs(j) == D: ans.append((i**2+j**2,i,j)) if len(ans) < K: print("No") else: ans.sort() print("Yes") print(*ans[K-1][1:])