eolymp
bolt
Try our new interface for solving problems
Problems

Музей

Музей

В Федеральном Университете Флатландии открылся музей спортивных достижений. Главная гордость этого музея - зал, в котором расположены сувениры со всевозможных соревнований по спортивному программированию.

Программирование становится всё популярнее, и заинтересованных посетителей этого зала становится всё больше, поэтому директор музея начинает беспокоиться о сохранности своих сувениров. Для начала директор решил оградить одну или две зоны с сувенирами от посетителей так, чтобы они не могли свободно бродить между ними, а могли лишь смотреть со стороны.

Зал имеет форму выпуклого многоугольника, а сувениры - это точки внутри этого многоугольника. Директор хочет выбрать один или два треугольника с вершинами в углах зала, так чтобы эти треугольники не имели общей внутренней части (то есть площадь их пересечения была равна нулю), а каждый сувенир оказался внутри одного из треугольников.

Директор хочет доставить посетителям как можно меньше неудобств, поэтому суммарная площадь выбранных треугольников должна быть минимальной, при этом площадь каждого треугольника должна быть строго положительной. Помогите директору оградить экспонаты.

Входные данные

Первая строка содержит количество тестов t. Далее следуют t блоков, каждый из которых выглядит следующим образом.

В первой строке блока находится два целых положительных числа n и m - количество вершин в многоугольнике, форму которого имеет зал, и количество сувениров в зале (3n2000, 1m2000).

В следующих n строках находятся по два целых числа xhi и yhi - координаты вершин многоугольника в декартовой системе координат (-109xhi, yhi109). Вершины даны в порядке обхода против часовой стрелки.

В следущих m строках находятся по два целых числа xsi, ysi - координаты сувениров (-109xsi, ysi109).

Гарантируется, что все сувениры находятся строго внутри зала, а также что никакие три из данных n + m точек не лежат на одной прямой.

Сумма всех n и сумма всех m во всех тестовых примерах одних входных данных не превосходят 2000 каждая.

Выходные данные

Для каждого из t тестов выведите следующее.

Если невозможно выбрать один или два треугольника требуемым образом, выведите в отдельной строке -1.

Иначе выведите в первой строке целое число k (1k2) - количество выбранных треугольников, и в каждой из следующих k строк выведите по три целых числа - номера вершин зала, которые являются вершинами треугольника.

Если оптимальных ответов несколько, выведите любой из них.

Обратите внимание, что требуется минимизировать только суммарную площадь выбранных треугольников.

Замечание

На рисунке показаны оптимальные способы выбрать треугольники в первом и третьем тестовых примерах, а также расположение сувениров во втором тестовом примере, где выбрать один или два треугольника нельзя.

prb7791.gif

Time limit 1 second
Memory limit 244.24 MiB
Input example #1
3
4 1
0 0
5 0
4 4
0 4
2 3
5 3
0 0
6 -6
11 0
8 4
3 4
3 2
7 3
8 -2
8 4
-4 -4
0 -7
4 -4
6 0
4 4
0 7
-4 4
-6 0
-2 -5
2 -5
3 2
-3 2
Output example #1
1
1 4 3
-1
2
1 3 2
4 8 6
Source 2016 XVII Всероссийская командная олимпиада школьников по программированию, 11 декабря, Задача H