import bisect for cas in range(int(input())): n, k = [int(x) for x in input().split(" ")] arr = [int(x) for x in input().split(" ")] ans = [0 for i in range(n)] map_ = {} sorted_arr = sorted(arr) left = [0]*n right = [0]*n for i in range(n): left[i]=1 val=sorted_arr[i] idx=bisect.bisect_left(sorted_arr, val - k+1) if idx>0: left[i]+=left[idx-1] for i in range(n-1,-1,-1): right[i]=1 val=sorted_arr[i] idx=bisect.bisect_left(sorted_arr, val + k)+1 if idx<=n: right[i]+=right[idx-1] for i, val in enumerate(sorted_arr): map_[val]=left[i]+right[i]-1 print(f"Case #{cas + 1}: ", end="") for val in arr: print(map_[val], end=" ") print() # for i in range(arr):