Art Gallery

No attempts yetTime limit1sMemory limit256 MB

Problem

The K gallery is known for its unusual structure with many walls. Two lamps stand at the two end corners of one wall to light the inside, and these two lamps leave no dark spot in the building. Every point inside the building receives light from at least one lamp.

Hong Gildong, who is preparing for the informatics olympiad, likes this building and comes to visit whenever he has time. During one visit he wondered what the shortest path joining two points inside the gallery looks like. Remembering the trouble he had implementing a shortest path algorithm for a general polygon, he thought that this unusual structure, lit everywhere by two lamps, might make the shortest path easy to find.

The gallery is a polygon P=(v0,v1,,vn1)P = (v_0, v_1, \ldots, v_{n-1}) with nn vertices. The list of vertices is the sequence met while walking counterclockwise along the boundary of the polygon. The lamps sit at the vertices v0v_0 and v1v_1. The edge (v0,v1)(v_0, v_1) is a horizontal segment, and the xx coordinate of v0v_0 is always smaller than the xx coordinate of v1v_1. Every vertex other than v0v_0 and v1v_1 has a yy coordinate larger than the yy coordinate of v0v_0.

A point qq inside the gallery receives light from a lamp vv when the segment joining the two points qq and vv does not meet the outside of PP. Note that every point of PP receives light from v0v_0 or from v1v_1.

Figure 1. Every point of the polygon receives light from v0v_0 or from v1v_1.

In the polygon of Figure 1 the vertices v8v_8 and v11v_{11} receive light only from v1v_1, and the vertices v3v_3 and v4v_4 receive light only from v0v_0. The remaining vertices receive light from both lamps. It is well known that a shortest path between two vertices bends only at vertices of the polygon. For example, the shortest path between the two vertices v4v_4 and v11v_{11} is (v4,v5,v9,v11)(v_4, v_5, v_9, v_{11}), and the shortest path between the two vertices v5v_5 and v1v_1 is the single segment (v5,v1)(v_5, v_1).

Help Hong Gildong: given two vertices of the polygon PP, write a program that finds the shortest path between the two vertices. The length of a path is the sum of the Euclidean lengths of the segments that form it.

Input

The first line contains an integer nn, the number of vertices of the polygon PP (3n1000003 \le n \le 100000). Each of the next nn lines contains two integers, the coordinates of a vertex viv_i of PP, starting from v0v_0 (i=0,1,,n1i = 0, 1, \ldots, n-1). Each coordinate is between 109-10^9 and 10910^9.

Every point of PP receives light from v0v_0 or from v1v_1. The vertices v0v_0 and v1v_1 have the same yy coordinate, and v0v_0 has a smaller xx coordinate than v1v_1. Every vertex other than v0v_0 and v1v_1 has a larger yy coordinate than v0v_0. No three consecutive vertices along the boundary of PP lie on one straight line.

The last line contains two integers ii and jj, the numbers of the two vertices viv_i and vjv_j whose shortest path is asked for (iji \ne j). The vertex viv_i is the start and the vertex vjv_j is the goal.

Output

Let (w0,w1,,wm1)(w_0, w_1, \ldots, w_{m-1}) be the shortest path joining the two given vertices viv_i and vjv_j, where w0=viw_0 = v_i, wm1=vjw_{m-1} = v_j, and wkw_k (1km21 \le k \le m-2) is a point where the shortest path bends. Print mm on the first line, and on the second line print the numbers of the vertices of PP that correspond to wkw_k, in order (0km10 \le k \le m-1). If the shortest path passes through a vertex without bending there, do not print the number of that vertex.