Military parade
In celebration of ByteLandia's Independence Day, the government has decided to host a military parade. The honor guard unit of ByteLandia has been tasked with forming a ceremonial row of soldiers, and this important responsibility has been assigned to Captain Kilobyte, who has served the unit faithfully for many years.
Captain Kilobyte knows that there are N soldiers in the unit, each with a height of H_{i} nanometers, where i ranges from 1 to N. A row is defined as any sequence of integers A_i such that 1 ≤ A_i ≤ N and A_i ≠ A_j if i ≠ j. The length of the row corresponds to the length of this sequence. A row is considered ceremonial if the height difference between any two adjacent soldiers does not exceed K nanometers. Specifically, for a sequence A_i of length M, the condition |H_Ai - H_Ai_{+1}| ≤ K must hold for any 1 ≤ i ≤ M-1.
Figure 1. Description of the second example.
Captain Kilobyte believes that his promotion to a higher military rank depends on the length of the ceremonial row he organizes. Your task is to assist Captain Kilobyte by preparing a ceremonial row of the maximum possible length.
Input
The first line of the input contains two natural numbers N (2 ≤ N ≤ 10^5) and K (0 ≤ K ≤ 10^9), separated by a space.
The second line contains exactly N integers H_i (1 ≤ H_i ≤ 10^9), representing the height of each soldier. These numbers are separated by spaces, and soldiers are numbered sequentially from one based on their input order.
Output
The first line of the output should contain a single number M, representing the maximum length of the ceremonial row.
The second line should list the ceremonial row, containing M integers A_i, separated by spaces. Soldiers are numbered in the order they appear in the input. If there are multiple valid solutions, you may output any one of them.