平面上有 $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$),分別表示給定點的數量和詢問的數量。
接下來 $n$ 行中的第 $i$ 行包含兩個整數 $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$。
範例測試資料的圖示