cas = int(input()) def run(): n,k = map(int, input().split()) a = [*map(int, input().split())] # print(a) b = [(x,i) for i,x in enumerate(a)] b = sorted(b) # print(b) t = 0 it = 0 left = [0] * n for i in range(n): while it <= i and b[i][0] - b[it][0] >= k: t = max(t,left[it]) it += 1 left[i] = t + 1 t = 0 it = n - 1 right = [0] * n for i in range(n-1,-1,-1): while it >= i and b[it][0] - b[i][0] >= k: t = max(t,right[it]) it -= 1 right[i] = t + 1 # print(left,right) ans = [0] * n for i in range(n): ans[b[i][1]] = left[i] + right[i] - 1 return ' '.join(map(str,ans)) for ca in range(cas): ans = run() print(f'Case #{ca+1}: {ans}')