Petr 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* , where and 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 molecules with weights . The detection is successful if there is a set of distinct indices such that .

Due to specifics of the machine, the gap between and is guaranteed to be greater than or equal to the weight gap between the heaviest and the lightest molecule. Formally, , where and .

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.

#### Implementation details

You should implement one function (method):

```
int find_subset(int l, int u, int w[], int n, int result[])
```

`l`

and`u`

: the endpoints of the detection range,`w`

: weights of the molecules,`n`

: the number of elements in (i.e., the number of molecules),`result`

: an array of integers. The method should write the indices of molecules that form any one such subset to the first cells of array`result`

. If there are several correct answers, write any of them.- The function should return the value of . If the required subset does not exist, the function should not write anything to the
`result`

array and it should return`0`

.

Your program may write the indices into the `result`

array in any order.

#### Sample 1

```
find_subset(15, 17, {6, 8, 8, 7}, 4, result)
```

In this example we have four molecules with weights , , and . The machine can detect subsets of molecules with total weight between and , inclusive. Note, that . The total weight of molecules and is , so the `result`

array can contain `{1, 3}`

and the function should return `2`

. Other possible correct answers are `{1, 2}`

and `[2, 3]`

.

#### Sample 2

```
find_subset(14, 15, {5, 5, 6, 6}, 4, result)
```

In this example we have four molecules with weights , , and , and we are looking for a subset of them with total weight between and , inclusive. Again, note that . There is no subset of molecules with total weight between and so the function should return `0`

.

#### Sample 3

```
find_subset(10, 20, {15, 17, 16, 18}, 4, result)
```

In this example we have four molecules with weights , , and , and we are
looking for a subset of them with total weight between and , inclusive. Again, note that . Any subset consisting of exactly one element has total weight between and , so the possible correct answers are: `{0}`

, `{1}`

, `{2}`

and `{3}`

.

#### Subtasks

- (9 points): , all are equal.
- (10 points): and .
- (12 points): and .
- (15 points): and .
- (23 points): and .
- (31 points): and .

## Comments