Military parade#3027

Military parade

1 second
256 megabytes
Very easy

In celebration of ByteLandia's Independence Day, the government decided to organize a military parade. The honor guard unit of ByteLandia has been tasked with preparing a ceremonial row of soldiers. This important responsibility has been entrusted to Captain Kilobyte, who has served the unit faithfully for many years.

Captain Kilobyte knows that there are soldiers in the unit, and the height of the -th soldier (1 \le i \le N) is H_i nanometers. A row is defined as any sequence of integers A_i such that 1 \le A_i \le N and A_i \ne A_j if i \ne j. The length of the row is the length of the sequence. A row is called ceremonial if the height difference between any pair of adjacent soldiers does not exceed nanometers. That is, for a sequence A_i of length , the condition |H_{A_i} - H_{A_{i+1}}| \le K holds for all 1 \le i \le M-1.

Figure 1. Description of the second example.

Captain Kilobyte believes that his promotion depends on the length of the ceremonial row he organizes. Your task is to help Captain Kilobyte fulfill the order and prepare a ceremonial row of the maximum possible length.

Input

The first line of the input contains two natural numbers (2 \le N \le 10^5) and (0 \le K \le 10^9), separated by a space.

The second line contains exactly integers H_i (1 \le H_i \le 10^9) — the heights of the soldiers. The numbers are separated by spaces. The soldiers are numbered sequentially in their input order, starting from .

Output

The first line of the output should contain a single integer — the maximum length of the ceremonial row.

The second line should contain integers A_i, separated by spaces, representing the ceremonial row. Soldiers are numbered in the order given in the input. If there are multiple solutions, output any of them.

Examples

Example 1

Loading
Loading