Point: 100.0
Time limit: 1.0s
Memory limit: 256 M
Input: stdin
Output: stdout
Problem type

\(Snape\) là một hacker vô cùng tài giỏi. Hắn ta mới tạo ra một loại virus \(WannaCry\) có thể đột nhập mọi máy tính dễ dàng để đánh cắp dữ liệu, ngoài ra khả năng lây lan của nó là rất nhanh: bán kính lây lan lên đến \(M\). Tuy nhiên chi phí để tạo ra virus \(WannaCry\) là vô cùng đắt đỏ vì thế \(Snape\) phải tính toán kỹ lưỡng số lượng trước khi phát tán. \(Snape\) đang muốn dùng con virus này tấn công vào một tập đoàn có n máy tính. Các máy tính của tập đoàn này được đặt trên 1 đường thẳng, máy thứ \(i\) đặt ở vị trí \(x_i\). Nếu \(Snape\) cài virus vào máy tính \(i\), con virus này có thể lây sang máy \(j\) nếu khoảng cách từ \(i\) đến \(j\) không vượt quá \(M\), tức là \(|x_i-x_j| \le M\).

\(Snape\) muốn nhờ bạn tính toán số lượng virus nhỏ nhất cần dùng để virus có thể lây lan hết cả \(n\) máy.

Dữ liệu:

  • Dòng đầu tiên chứa 2 số nguyên dương \(n\), \(M\) \((n \le 2 . 10^5, M \le 10^{12})\)
  • Dòng tiếp theo chứa n số nguyên \(x_1,x_2,...,x_n\) \((x_i \le 10^{12}, x_i \neq x_j\) với \(i \neq j)\)

Kết quả:

  • In ra số virus nhỏ nhất cần dùng.

Ví dụ:

INPUT OUTPUT Giải thích
\(4\) \(3\)
\(1\) \(12\) \(15\) \(18\)
2 Đặt 2 con virus ở máy thứ 1 và máy thứ 3