На площині задано $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$.
Ілюстрації до тестових прикладів