Na płaszczyźnie danych jest $n$ punktów $P_1, P_2, \ldots, P_n$. VegiCat ma dla ciebie $q$ zapytań. Każde zapytanie podaje punkt $P$.
Dla każdego zapytania skonstruuj wielokąt prosty, używając niektórych z podanych punktów jako jego wierzchołków. Wielokąt musi zawierać punkt $P$ ściśle wewnątrz siebie i mieć minimalną liczbę wierzchołków. Jeśli taki wielokąt nie istnieje, wypisz $-1$.
Wielokąt prosty to zamknięta łamana mająca co najmniej trzy różne wierzchołki. Sąsiednie krawędzie przecinają się wyłącznie w swoim wspólnym końcu, a niesąsiednie krawędzie się nie przecinają.
Przykłady wielokątów prostych i nieprostych
Wejście
Pierwszy wiersz zawiera liczbę całkowitą $T$ ($1 \le T \le 2 \cdot 10^4$), oznaczającą liczbę przypadków testowych. Poniżej znajduje się opis przypadków testowych.
Pierwszy wiersz każdego przypadku testowego zawiera dwie dodatnie liczby całkowite $n$ oraz $q$ ($3 \le n \le 10^5$, $1 \le q \le 10^5$), oznaczające odpowiednio liczbę podanych punktów oraz liczbę zapytań.
$i$-ty z kolejnych $n$ wierszy zawiera dwie liczby całkowite $x_i$ oraz $y_i$ ($-10^9 \le x_i, y_i \le 10^9$), będące współrzędnymi punktu $P_i$. Gwarantuje się, że te $n$ punktów są parami różne.
Każdy z kolejnych $q$ wierszy zawiera dwie liczby całkowite $x$ oraz $y$ ($-10^9 \le x, y \le 10^9$), będące współrzędnymi punktu z zapytania.
Gwarantuje się, że suma wartości $n$ po wszystkich przypadkach testowych nie przekracza $10^5$.
Gwarantuje się, że suma wartości $q$ po wszystkich przypadkach testowych nie przekracza $10^5$.
Wyjście
Dla każdego zapytania, jeśli nie istnieje wielokąt spełniający wymagania, wypisz w jednym wierszu jedną liczbę całkowitą $-1$.
W przeciwnym razie wypisz wielokąt o minimalnej liczbie wierzchołków. W pierwszym wierszu wypisz jedną liczbę całkowitą $m$, oznaczającą liczbę wierzchołków.
W drugim wierszu wypisz po kolei $m$ liczb całkowitych $a_1, a_2, \ldots, a_m$ ($1 \le a_i \le n$), oznaczających indeksy kolejnych wierzchołków. Wielokątem jest $P_{a_1} P_{a_2} \ldots P_{a_m}$. Wierzchołki mogą zostać wypisane w kolejności zgodnej z ruchem wskazówek zegara lub przeciwnej.
Indeksy muszą być parami różne, a wypisany wielokąt musi być prosty i zawierać punkt z zapytania ściśle wewnątrz siebie. Jeśli istnieje wiele rozwiązań, wypisz dowolne z nich.
Przykłady
Wejście 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
Wyjście 1
3 4 1 2 -1
Uwaga
W pierwszym przypadku testowym trójkąt $P_4 P_1 P_2$ zawiera punkt z zapytania $P = (0, 0)$ ściśle wewnątrz siebie. Ponieważ wielokąt ma co najmniej trzy wierzchołki, ten trójkąt ma minimalną liczbę wierzchołków.
W drugim przypadku testowym jedynym możliwym wielokątem jest trójkąt $P_1 P_2 P_3$. Punkt z zapytania $P = (0, 0)$ leży na krawędzi $P_2 P_3$, więc odpowiedzią jest $-1$.
Ilustracje przykładowych przypadków testowych