from math import gcd import sys, time, random from collections import deque, Counter, defaultdict def debug(*x):print('debug:',*x, file=sys.stderr) input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 61 - 1 mod = 998244353 class dsu(): n=1 parent_or_size=[-1 for i in range(n)] def __init__(self,N): self.n=N self.num = N self.parent_or_size=[-1 for i in range(N)] def merge(self,a,b): assert 0<=a0: result2.append(result[i]) return result2 def count(self): return self.num def solve(): k, m, n = mi() m -= 1 if m == 0: print('No') return graph = [[] for _ in range(k)] for i in range(k): graph[i].append((i + m) % k) visit = [False] * k ans = [] for i in range(k): if visit[i]: continue seq = [] while not visit[i]: visit[i] = True seq.append(i) i = graph[i][0] if len(seq) % 2 == 0: for i in range(0, len(seq), 2): ans.append(seq[i]) else: for i in range(0, len(seq) - 1, 2): ans.append(seq[i]) if len(ans) >= n: print('Yes') print(*[i + 1 for i in ans[:n]]) else: print('No') for _ in range(ii()): solve()