Задача E. Прямые

Входной файл:input.txt   Ограничение времени:1 сек
Выходной файл:output.txt   Ограничение памяти:512 Мб

Условие

Даны n прямых на плоскости. Ваша задача — выбрать максимально возможное подмножество этих прямых так, чтобы среди выбранных прямых не было одинаковых прямых, параллельных прямых, прямых имеющих один и тот же y пересечения с прямой x = 0.

Формат входного файла

На первой строке количество тестов T, далее идёт описание T тестов. Первая строка теста содержит количество прямых n. Каждая из следующих n строк содержит по три целых числа Ai, Bi и Ci, описывающих прямую, как множество точек (x, y), для которых Ai x + Bi y + Ci = 0. Сумма n по всем тестам не превосходит 3000.

Формат выходного файла

Для каждого теста на одной строке выведите k — максимальный размер подмножества прямых. На следующей строке k целых чисел от 1 до n — номера выбранных прямых в произвольном порядке. Прямые нумеруются от 1 в том порядке, в котором даны в описании теста. Если существует несколько оптимальных решений, выведите любое одно.

Ограничения

1 ≤ n ≤ 3000

109 ≤ A, B, C ≤ 109, A2 + B2 > 0

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
2
2
1 1 0
1 1 1
2
-1 1 1
-2 1 1
1
1
1
1

0.020s 0.004s 15