Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

The problem statement has recently been changed. View the changes.

×
E. Frog Fights

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputOstap Bender recently visited frog farm and was inspired to create his own frog game.

Number of frogs are places on a cyclic gameboard, divided into *m* cells. Cells are numbered from 1 to *m*, but the board is cyclic, so cell number 1 goes right after the cell number *m* in the direction of movement. *i*-th frog during its turn can jump for *a*_{i} cells.

Frogs move in turns, game starts with a move by frog 1. On its turn *i*-th frog moves *a*_{i} cells forward, knocking out all the frogs on its way. If there is a frog in the last cell of the path of the *i*-th frog, that frog is also knocked out. After this the value *a*_{i} is decreased by the number of frogs that were knocked out during this turn. If *a*_{i} is zero or goes negative, then *i*-th frog doesn't make moves anymore.

After frog number 1 finishes its turn, frog number 2 starts to move, then frog number 3 and so on. After the frog number *n* makes its move, frog 1 starts to move again, then frog 2 and so on this process goes forever. If some frog was already knocked out from the board, we consider that it skips all its moves.

Help Ostap to identify, what frogs will stay on the board at the end of a game?

Input

First line of the input contains two integers *n* and *m* (1 ≤ *n* ≤ 100000, 1 ≤ *m* ≤ 10^{9}, *n* ≤ *m*) — number of frogs and gameboard size, respectively.

Following *n* lines contains frogs descriptions — two integers *p*_{i} and *a*_{i} (1 ≤ *p*_{i}, *a*_{i} ≤ *m*) — the number of cell occupied by *i*-th frog initially and initial jump length. All *p*_{i} are guaranteed to be distinct.

Output

In the first line output number of frogs on the final gameboard. In the second line output their numbers in any order.

Examples

Input

3 5

2 1

5 3

4 3

Output

1

3

Input

5 6

1 2

3 4

2 5

5 1

6 1

Output

2

1 4

Note

In the first sample first frog jumps 1 cell and finishes in cell number 3. Second frog jumps for 3 cells and finishes on cell number 3, knocking out frog number 1. Current jump length for frog number 2 is now 2. Third frog jumps to cell 2, then second frog jumps to cell 5. Third frog in turn finishes in cell 5 and removes frog 2 from the gameboard. Now, it's the only remaining frog in the game.

In the second sample first frog jumps 2 cells and knocks out frogs in cells 2 and 3. Its value *a*_{i} is now 0. Then fourth frog jumps and knocks out fifth frog and its *a*_{i} is now 0 too. These two frogs will remains on the gameboard forever.

Codeforces (c) Copyright 2010-2022 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/22/2022 20:30:05 (h3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|