Standing a playing card on its edge is hard, but someone patiently stood N cards on a desk, each resting on its shorter edge. Seen from above, each card is a line segment on the desk; card i runs from (xi,yi) to (vi,wi). Every card has the same height H, and no two segments intersect.
The first card is pushed and falls flat. As a card falls flat, its rectangular face covers a region of the desk: the base segment stays fixed, and the card covers the rectangle obtained by extending that segment a distance H in the falling direction (perpendicular to the segment). Any still-standing card whose segment is touched by this rectangle also falls.
The first card falls in the direction obtained by rotating the vector (x1,y1)→(v1,w1) by 90∘ counter-clockwise.
When a falling card A touches a standing card B, card B falls in whichever of the two directions perpendicular to its own segment makes the ray along its falling direction avoid crossing the line that contains card A's segment; that is, B topples away from the card that pushed it.
The input never contains:
Determine which cards fall and which remain standing.
The first line contains the number of cards N and the card height H (1≤N≤100, H>0; H is a real number). Each of the next N lines contains four real numbers xi yi vi wi, separated by spaces — the endpoint coordinates of card i's segment.
Print the numbers of the cards that fall, in increasing order, separated by spaces.