# Жадібні алгоритми

# Detecting Molecules

Peter is working for a company that has built a machine for detecting molecules. Each molecule has a positive integer weight. The machine has a detection range [**l**; **u**], where **l** and **u** are positive integers. The machine can detect a set of molecules if and only if this set contains a subset of the molecules with total weight belonging to the machine's detection range.

Formally, consider **n** molecules with weights `w`

, ..., _{0}`w`

. The detection is successful if there is a set of distinct indices I = {_{n-1}`i`

, ..., _{1}`i`

} such that _{m}**l** ≤ `w`

+ .. + _{i1}`w`

≤ _{im}**u**.

Due to specifics of the machine, the gap between **l** and **u** is guaranteed to be greater than or equal to the weight gap between the heaviest and the lightest molecule. Formally **u** - **l** ≥ `w`

- _{max}`w`

, where _{min}`w`

= max(_{max}`w`

, ..., _{0}`w`

) and _{n-1}`w`

= min(_{min}`w`

, ..., _{0}`w`

)._{n-1}

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

#### Input

First line contains three integers: the number of molecules **n** (**1** ≤ **n** ≤ **200000**) and the endpoints of the detection range **l** and **u** (**1** ≤ **l**, **u** < `2`

). Second line contains ^{31}**n** integers: `w`

, ..., _{0}`w`

(_{n-1}**1** ≤ `w`

< _{i}`2`

).^{31}

#### Output

Print in the first line the size of subset **m**. Print in the second line the indices of molecules that form any one such subset. If there are several correct answers, print any of them.

4 15 17 6 8 8 7

2 2 1

4 14 15 5 5 6 6

0

4 10 20 15 17 16 18

1 3