import sys, math, itertools, functools, collections input = sys.stdin.readline def f(x, k): res = [] cur = 0 for i in range(len(x)): while cur < i and x[i][0]-x[cur+1][0] >= k: cur += 1 z = 1 if x[i][0]-x[cur][0] >= k: z += res[cur] res.append(z) return res def solve(testcase): n, k = map(int, input().split()) a = [*map(int, input().split())] a = [(a[i], i) for i in range(n)] a.sort() b = [(-i, j) for i, j in a[::-1]] x, y = f(a, k), f(b, k)[::-1] res = [0] * n for i in range(n): res[a[i][1]] = x[i] + y[i] - 1 print('Case #'+str(testcase)+':', *res) for testcase in range(1, int(input())+1): solve(testcase)