package main import ( "fmt" "bufio" "os" "sort" ) func main() { r := bufio.NewReader(os.Stdin) w := bufio.NewWriter(os.Stdout) defer w.Flush() var N, D int fmt.Fscan(r, &N, &D) a := make([]int, N) b := make([]int, N) for i := 0; i < N; i++ { var x int fmt.Fscan(r, &x) a[i] = x b[i] = x } sort.Ints(b) for _, x := range a { j := sort.Search(N, func(i int) bool { return b[i] > x - D}) if j < N { fmt.Fprintln(w, j) } else { fmt.Fprintln(w, 0) } } }