На плоскости даны $n$ точек $P_1, P_2, \ldots, P_n$. У VegiCat есть к вам $q$ запросов. В каждом запросе задаётся точка $P$.
Для каждого запроса постройте простой многоугольник, используя некоторые из данных точек в качестве его вершин. Многоугольник должен содержать точку $P$ строго внутри себя и иметь минимальное количество вершин. Если такого многоугольника не существует, выведите $-1$.
Простой многоугольник — это замкнутая ломаная как минимум с тремя различными вершинами. Соседние рёбра пересекаются только в их общей концевой точке, а несоседние рёбра не пересекаются.
Примеры простых и непростых многоугольников
Входные данные
Первая строка содержит целое число $T$ ($1 \le T \le 2 \cdot 10^4$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два положительных целых числа $n$ и $q$ ($3 \le n \le 10^5$, $1 \le q \le 10^5$), обозначающих количество данных точек и количество запросов соответственно.
$i$-я из следующих $n$ строк содержит два целых числа $x_i$ и $y_i$ ($-10^9 \le x_i, y_i \le 10^9$) — координаты точки $P_i$. Гарантируется, что все эти $n$ точек попарно различны.
Каждая из следующих $q$ строк содержит два целых числа $x$ и $y$ ($-10^9 \le x, y \le 10^9$) — координаты запрашиваемой точки.
Гарантируется, что сумма $n$ по всем наборам входных данных не превосходит $10^5$.
Гарантируется, что сумма $q$ по всем наборам входных данных не превосходит $10^5$.
Выходные данные
Для каждого запроса, если многоугольника, удовлетворяющего требованиям, не существует, выведите одно целое число $-1$ в отдельной строке.
В противном случае выведите многоугольник с минимальным количеством вершин. В первой строке выведите одно целое число $m$ — количество вершин.
Во второй строке выведите $m$ целых чисел $a_1, a_2, \ldots, a_m$ ($1 \le a_i \le n$) — индексы вершин по порядку. Многоугольник имеет вид $P_{a_1} P_{a_2} \ldots P_{a_m}$. Вершины можно выводить в порядке обхода как по часовой стрелке, так и против часовой стрелки.
Индексы должны быть попарно различны, а выведенный многоугольник должен быть простым и содержать запрашиваемую точку строго внутри себя. Если решений несколько, выведите любое из них.
Примеры
Входные данные 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
Выходные данные 1
3 4 1 2 -1
Примечание
В первом наборе входных данных треугольник $P_4 P_1 P_2$ содержит запрашиваемую точку $P = (0, 0)$ строго внутри себя. Поскольку у многоугольника не менее трёх вершин, этот треугольник имеет минимальное количество вершин.
Во втором наборе входных данных единственный возможный многоугольник — это треугольник $P_1 P_2 P_3$. Запрашиваемая точка $P = (0, 0)$ лежит на стороне $P_2 P_3$, поэтому ответ равен $-1$.
Иллюстрации к примерам из условия