Q=int(input()) D={};A=[] for i in range(-100,101): for j in range(-100,101): d=abs(i)+abs(j) if d>100: continue if d not in D: D[d]=[] D[d].append((i**2+j**2,i,j)) A.append(d) for d in D: D[d]=sorted(D[d]) import bisect for _ in range(Q): d,k=map(int, input().split()) B=[];E=[] now=-1 for a,x,y in D[d]: if a!=now: now=a B.append(1) E.append((x,y)) else: B[-1]+=1 C=[0] for b in B: C.append(C[-1]+b) f=0 for i in range(len(C)-1): x,y=C[i],C[i+1] if x=k: f=1 ans=E[i] if f==0: print('No') else: print('Yes') print(*ans) #P=list(map(int,input().split()))