Jonathan wants you to attach some marble tracks to the wall to play with. Each of them is a straight piece of plastic with a little indent on one side for the marble to roll in. After asking Jonathan how he wants them attached, he spends 15 minutes with some crayons to draw you a blueprint. After he hands it to you, you inform him that you can't build two tracks that intersect at inner points. Jonathan ponders this insight for a moment and then modifies his blueprint. But instead of properly fixing it, he decides to number all tracks from 1 (his most favorite) to n (his least favorite).

The first sample (original blueprint).
It is now your task to figure out which tracks to build. You decide to go through all tracks from his most to least favorite and build them if they do not intersect a track that you have already attached to the wall.
The first line contains one integer $n$ ($1 \leq n \leq 6 \cdot 10^4$) --- the number of marble tracks in the blueprint.
Each of the following $n$ lines contains four integers $x_1, y_1, x_2, y_2$ ($-10^5 \leq x_1, y_1, x_2, y_2 \leq 10^5$ and $x_1 \neq x_2$). These represent a marble track from $(x_1, y_1)$ to $(x_2, y_2)$ in the blueprint.
They are given in order from most to least favorite. Two different tracks intersect in at most one point.
Output one integer $k$ in one line, the number of tracks to build. In the next line, output $k$ integers, the indices of the tracks to build in increasing order.
As you might have noticed, the input format specifies $x_1 \neq x_2$ for each possible marble track. This is because you can't roll a marble down a vertical track.