Hiring#288

Hiring

5 seconds
64 megabytes
Very easy

You have to hire workers for a construction project. There are candidates applying for the job, numbered from to . Each candidate requires that if they are hired, they must be paid at least S_k dollars. Each candidate also has a qualification level Q_k. The construction industry regulations require that you pay your workers in proportion to their qualification level, relative to each other. For example, if you hire two workers and , and Q_A = 3 Q_B, then you have to pay worker exactly three times as much as you pay worker . You may pay your workers non-integer amounts of money. This includes amounts that cannot be written with a finite number of decimal digits, such as a third or a sixth of a dollar.

You have dollars and want to hire as many workers as possible. You decide whom to hire and how much to pay them, but you must meet the minimum salary requirements of those you hire and comply with the industry regulations. You must also keep within your budget of dollars.

For this construction project, the qualification level is irrelevant except for determining legal pay. You are only interested in maximizing the number of workers, regardless of their qualification level. However, if there are several ways to do this, you want to select the one where the total amount paid is minimized. If several ways remain, any one of them is acceptable.

Given the minimum salary requirements and qualification levels of the candidates, as well as the amount of money you have, write a program that determines which candidates you should hire. You must hire as many as possible, using as little money as possible, while complying with the industry regulations above.

Input

The first line contains two integers (1 \leq n \leq 500\,000) and (1 \leq w \leq 10^{10}), separated by a space. The next lines describe the candidates, one per line. The -th of these lines describes candidate number and contains the integers S_k and Q_k (1 \leq S_k, Q_k \leq 20\,000), separated by a space.

The maximum value of does not fit in a -bit data type. You should use a -bit type such as long long in C/C++ or int64 in Pascal. More details are on the technical information pages.

Output

The first line must contain a single integer  — the number of workers hired. The next lines must list the numbers of the candidates you selected for hiring (distinct integers from to ), one per line, in any order.

Examples

Example 1

Loading
Loading