Detecting Molecules#7975

Detecting Molecules

1 second
128 megabytes
Medium

Peter is working for a company that has built a device for detecting molecules. Each molecule has a positive integer weight. The device is characterized by a detection range , where and are positive integers. The device can detect a set of molecules if and only if this set contains a subset of molecules whose total weight lies within the device's detection range.

Formally, consider molecules with weights w_0, \ldots, w_{n-1}. Detection is considered successful if there exists a set of distinct indices I = \{i_1, \ldots, i_m\} such that

l \le w_{i_1} + \ldots + w_{i_m} \le u.

Due to the specifics of the device, the difference between and is guaranteed to be greater than or equal to the difference in weights between the heaviest and the lightest molecule. Formally,

u - l \ge w_{\text{max}} - w_{\text{min}},

where w_{\text{max}} = \max(w_0, \ldots, w_{n-1}) and w_{\text{min}} = \min(w_0, \ldots, w_{n-1}).

Your task is to write a program that either finds any subset of molecules with a total weight within the detection range, or determines that no such subset exists.

Input

The first line contains three integers: the number of molecules (1 \le n \le 200\,000), and the endpoints of the detection range and (1 \le l, u < 2^{31}). The second line contains integers: w_0, \ldots, w_{n-1} (1 \le w_i < 2^{31}).

Output

Print the size of the subset in the first line. In the second line, print the indices of the molecules that form any such subset. If there are multiple valid answers, print any of them.

Examples

Example 1

Loading
Loading

Example 2

Loading
Loading

Example 3

Loading
Loading