from __future__ import division, print_function import array import bisect import collections import decimal import fractions import functools import heapq import itertools import math import random import re import sys try: input = raw_input except NameError: pass # decimal.getcontext().prec = 50 # sys.setrecursionlimit(1000000) # MOD = 10**9 + 7 # INF = float('inf') IMPOSSIBLE = "IMPOSSIBLE" POSSIBLE = "POSSIBLE" def solve(f): n, k = f.read_int_list() a = f.read_int_list() d0 = dict(zip(a, range(n))) a.sort() d = {} for i, ai in enumerate(a): d[d0[ai]] = i # print(d) left = [None] * (n + 2) right = [None] * (n + 2) left[0] = (0, -float("inf")) right[n + 1] = (0, float("inf")) for i in range(n): cnt, before = left[i] if a[i] - before >= k: left[i + 1] = (cnt + 1, a[i]) else: left[i + 1] = (cnt, before) for i in range(n - 1, -1, -1): cnt, before = right[i + 2] if before - a[i] >= k: right[i + 1] = (cnt + 1, a[i]) else: right[i + 1] = (cnt, before) # print(left, right) ans = [] for ii in range(n): i = d[ii] ans.append(left[i + 1][0] + right[i + 1][0] - 1) return " ".join(map(str, ans)) class Reader(object): def __init__(self, filename=None): self.file = open(filename) if filename is not None else None self.case = 1 def __readline(self): return next(self.file).strip() if self.file else input() def next_case(self): next(self.file) self.case += 1 def read_int(self): return int(self.__readline()) def read_float(self): return float(self.__readline()) def read_decimal(self): return decimal.Decimal(self.__readline()) def read_str(self): return self.__readline() def read_int_list(self): return list(map(int, self.__readline().split())) def read_float_list(self): return list(map(float, self.__readline().split())) def read_decimal_list(self): return list(map(decimal.Decimal, self.__readline().split())) def read_str_list(self): return self.__readline().split() if __name__ == "__main__": filename = sys.argv[1] if len(sys.argv) > 1 else None f = Reader(filename) cases = f.read_int() for case in range(cases): line = "Case #%d: %s\n" % (case + 1, str(solve(f))) print(line, end="")