E. Другая реальность
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

В 3000 году путешествия между параллельными реальностями стали обычной практикой. Однако следует учитывать, что подобные путешествия сопряжены с немалой опасностью — ведь никогда не знаешь заранее, куда попадешь...

Мальчик Вася, к примеру, попал в игровую реальность, и теперь, чтобы вернуться назад, ему необходимо успешно пройти все уровни одной очень странной игры. Игровая реальность представляет собой трехмерное пространство, в котором отмечено n точек. Игра состоит из m уровней, в начале i-го уровня игрок попадает на некоторую плоскость Qi, проходящую через начало координат. На каждом уровне ему требуется при помощи специальных роботов построить и активировать n мощных энергетических сфер одинакового радиуса с центрами в заданных точках. Радиус сфер игрок выбирает самостоятельно. На построение сфер радиуса R ему придется потратить R денежных единиц (соответственно, сферы нулевого радиуса можно построить бесплатно). Также игрок один раз за уровень может выбрать любую точку пространства и выпустить оттуда лазерный луч, перпендикулярный плоскости Qi (это действие оплачивать не нужно). Луч может быть направлен либо к плоскости, либо от неё. Сферы, имеющие с этим лучом хотя бы одну общую точку, будут незамедлительно активированы. Уровень считается пройденным, если игрок сумел активировать все сферы. Следует отметить, что центры сфер — одни и те же для всех m уровней, но сами сферы не сохраняются: на каждом уровне их необходимо строить заново.

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

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

В первой строке находятся два целых числа n и m (1 ≤ n ≤ 900, 1 ≤ m ≤ 100) — количество энергетических сфер и количество уровней игры соответственно.

В каждой из следующих n строк находится три целых числа xi, yi, zi (0 ≤ xi, yi, zi ≤ 104) — координаты центра i-ой сферы. Считайте, что эти точки не меняют своего положения на протяжении всей игры.

Далее следует m строк, каждая из которых содержит по три целых числа ai, bi, ci (0 ≤ ai, bi, ci ≤ 100, ai2 + bi2 + ci2 > 0). Эти числа являются коэффициентами в уравнении плоскости Qi (aix + biy + ciz = 0), на которой игрок находится в начале i-ого уровня.

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

Выведите m чисел по одному в строке: в i-ой строке следует вывести минимальное количество денег, достаточное для прохождения i-ого уровня. Абсолютная или относительная погрешность не должна превосходить 10 - 6.

Примеры
Входные данные
4 1
0 0 0
0 1 0
1 0 0
1 1 0
0 0 1
Выходные данные
0.7071067812
Входные данные
5 3
0 1 0
1 0 1
1 2 1
2 0 1
1 3 0
1 1 1
1 2 3
3 0 3
Выходные данные
1.6329931619
1.6366341768
1.5411035007
Входные данные
2 1
0 20 0
0 0 0
0 10 0
Выходные данные
0.0000000000