Ci sono $n$ punti $P_1, P_2, \ldots, P_n$ nel piano. VegiCat ha $q$ query per te. Ogni query fornisce un punto $P$.
Per ogni query, costruisci un poligono semplice usando alcuni dei punti dati come suoi vertici. Il poligono deve contenere $P$ strettamente al suo interno e avere il minimo numero di vertici. Se non esiste alcun poligono del genere, stampa $-1$.
Un poligono semplice è una spezzata chiusa con almeno tre vertici distinti. I lati adiacenti si intersecano solo nel loro estremo comune, e i lati non adiacenti non si intersecano.
Esempi di poligoni semplici e non semplici
Input
La prima riga contiene un intero $T$ ($1 \le T \le 2 \cdot 10^4$), il numero di casi di test. Segue la descrizione dei casi di test.
La prima riga di ogni caso di test contiene due interi positivi $n$ e $q$ ($3 \le n \le 10^5$, $1 \le q \le 10^5$), che rappresentano rispettivamente il numero di punti dati e il numero di query.
La $i$-esima delle successive $n$ righe contiene due interi $x_i$ e $y_i$ ($-10^9 \le x_i, y_i \le 10^9$), le coordinate di $P_i$. È garantito che questi $n$ punti siano a due a due distinti.
Ciascuna delle successive $q$ righe contiene due interi $x$ e $y$ ($-10^9 \le x, y \le 10^9$), le coordinate del punto richiesto nella query.
È garantito che la somma di $n$ su tutti i casi di test non superi $10^5$.
È garantito che la somma di $q$ su tutti i casi di test non superi $10^5$.
Output
Per ogni query, se non esiste alcun poligono che soddisfi i requisiti, stampa un intero $-1$ su una riga.
Altrimenti, stampa un poligono con il minimo numero di vertici. Sulla prima riga, stampa un intero $m$, il numero di vertici.
Sulla seconda riga, stampa $m$ interi $a_1, a_2, \ldots, a_m$ ($1 \le a_i \le n$), gli indici dei vertici in ordine. Il poligono è $P_{a_1} P_{a_2} \ldots P_{a_m}$. I vertici possono essere stampati in senso orario oppure antiorario.
Gli indici devono essere a due a due distinti, e il poligono stampato deve essere semplice e contenere il punto richiesto strettamente al suo interno. Se ci sono più soluzioni, stampane una qualsiasi.
Esempi
Input 1
2 5 1 0 4 -3 0 -3 -3 3 -3 3 0 0 0 3 1 0 4 -3 0 3 0 0 0
Output 1
3 4 1 2 -1
Nota
Nel primo caso di test, il triangolo $P_4 P_1 P_2$ contiene il punto richiesto $P = (0, 0)$ strettamente al suo interno. Poiché un poligono ha almeno tre vertici, questo triangolo ha il minimo numero di vertici.
Nel secondo caso di test, l'unico poligono possibile è il triangolo $P_1 P_2 P_3$. Il punto richiesto $P = (0, 0)$ giace sul lato $P_2 P_3$, quindi la risposta è $-1$.
Illustrazioni dei casi di test di esempio