Il y a $n$ points $P_1, P_2, \ldots, P_n$ dans le plan. VegiCat a $q$ requêtes pour vous. Chaque requête donne un point $P$.
Pour chaque requête, construisez un polygone simple en utilisant certains des points donnés comme sommets. Le polygone doit contenir $P$ strictement à l'intérieur de celui-ci et avoir le nombre minimum de sommets. S'il n'existe aucun polygone de ce type, affichez $-1$.
Un polygone simple est une chaîne polygonale fermée comportant au moins trois sommets distincts. Les arêtes adjacentes ne se coupent qu'en leur extrémité commune, et les arêtes non adjacentes ne se coupent pas.
Exemples de polygones simples et non simples
Entrée
La première ligne contient un entier $T$ ($1 \le T \le 2 \cdot 10^4$), le nombre de cas de test. La description des cas de test suit.
La première ligne de chaque cas de test contient deux entiers strictement positifs $n$ et $q$ ($3 \le n \le 10^5$, $1 \le q \le 10^5$), représentant le nombre de points donnés et le nombre de requêtes.
La $i$-ème des $n$ lignes suivantes contient deux entiers $x_i$ et $y_i$ ($-10^9 \le x_i, y_i \le 10^9$), les coordonnées de $P_i$. Il est garanti que ces $n$ points sont deux à deux distincts.
Chacune des $q$ lignes suivantes contient deux entiers $x$ et $y$ ($-10^9 \le x, y \le 10^9$), les coordonnées du point de la requête.
Il est garanti que la somme de $n$ sur tous les cas de test ne dépasse pas $10^5$.
Il est garanti que la somme de $q$ sur tous les cas de test ne dépasse pas $10^5$.
Sortie
Pour chaque requête, s'il n'existe aucun polygone satisfaisant les conditions, affichez un entier $-1$ sur une ligne.
Sinon, affichez un polygone ayant le nombre minimum de sommets. Sur la première ligne, affichez un entier $m$, le nombre de sommets.
Sur la deuxième ligne, affichez $m$ entiers $a_1, a_2, \ldots, a_m$ ($1 \le a_i \le n$), les indices des sommets dans l'ordre. Le polygone est $P_{a_1} P_{a_2} \ldots P_{a_m}$. Les sommets peuvent être affichés dans le sens horaire ou antihoraire.
Les indices doivent être deux à deux distincts, et le polygone affiché doit être simple et contenir le point de la requête strictement à l'intérieur. S'il existe plusieurs solutions, affichez n'importe laquelle d'entre elles.
Exemples
Entrée 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
Sortie 1
3 4 1 2 -1
Note
Dans le premier cas de test, le triangle $P_4 P_1 P_2$ contient le point demandé $P = (0, 0)$ strictement à l'intérieur. Comme un polygone possède au moins trois sommets, ce triangle a le nombre minimum de sommets.
Dans le deuxième cas de test, le seul polygone possible est le triangle $P_1 P_2 P_3$. Le point demandé $P = (0, 0)$ se trouve sur l'arête $P_2 P_3$, la réponse est donc $-1$.
Illustrations des cas de test de l'exemple