Убежища
ограничение по времени на тест
2.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

По одной туго натянутой шёлковой нити, пересекающей земли Фарлума, расселились $$$n$$$ маленьких жителей. Каждый житель сидит на своей точке нити с координатой $$$x_i$$$. Всех жителей надо разместить по коконам на этой нити, которые будут служить им убежищами.

При размещении коконов на нити, каждый житель выдвинется к ближайшему к нему убежищу. Иными словами, если коконы расположатся на координатах $$$a_1, \ldots, a_k$$$, то найдем для каждого $$$x_i$$$ такое $$$j_i$$$, что $$$|x_i - a_{j_i}|$$$ минимально. Тогда опасностью этого набора коконов назовем $$$D = \max\limits_{i=1}^n |x_i - a_{j_i}|$$$, то есть максимальное расстояние от жителя до ближайшего к нему кокона.

Хорнет получает $$$q$$$ независимых поручений. В каждом поручении ей указывают:

От нее только требуется добавить ещё $$$k-r$$$ убежищ в любые точки нити (координаты не обязаны быть целыми) так, чтобы минимизировать итоговую опасность набора.

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

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ — количество наборов входных данных ($$$1 \leq t \leq 5000$$$). Далее следует описание наборов входных данных.

Первая строка каждого набора содержит два целых числа $$$n$$$ и $$$q$$$ — количество жителей и количество поручений ($$$1 \le n, q \le 35\,000$$$).

Вторая строка каждого набора содержит $$$n$$$ целых чисел $$$x_i$$$ — координаты жителей ($$$|x_i| \le 10^8$$$).

Следующие $$$q$$$ строк описывают поручения. В каждой строке записаны подряд целые числа $$$k$$$, $$$r$$$ и $$$a_1, \ldots, a_r$$$ для соответствующего поручения. Здесь $$$k$$$ — общее число убежищ в итоге , $$$r$$$ — число уже зафиксированных убежищ, а $$$a_j$$$ — их координаты ($$$1 \le k \le 35\,000$$$; $$$0 \le r \le k$$$; $$$|a_j| \le 10^8$$$).

Гарантируется, что сумма $$$n \cdot q$$$ по всем наборам входных данных не превосходит $$$35\,000$$$ и сумма $$$r$$$ по всем наборам входных данных не превосходит $$$35\,000$$$.

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

Для каждого набора входных данных выведите строку из $$$q$$$ вещественных чисел — ответов на поручения. Ответ будет считаться правильным, если его абсолютная или относительная погрешность от ответа жюри не будет превышать $$$10^{-9}$$$.

Пример

Входные данные
2
6 6
0 11 -5 4 -1 10
1 0
2 0
3 0
10 0
2 1 0
3 1 4
4 5
0 0 100 101
1 0
2 2 101 0
3 1 50
10 0
2 1 100
Выходные данные
8 3.5 2 0 5 2.5
50.5 1 0.5 0 1

Примечание

В первом примере:

  1. В первом запросе надо поставить только одно убежище, поэтому логично его ставить ровно посередине между крайними жителями ($$$-5$$$ и $$$11$$$), и у каждого из них расстояние до убежища будет равно $$$8$$$.
  2. Во втором запросе два убежища должны быть расположены посередине между $$$-5$$$ и $$$0$$$ и между $$$4$$$ и $$$11$$$.
  3. В третьем запросе подходят убежища на позициях $$$-3$$$, $$$2$$$ и $$$10$$$.
  4. В четвертом достаточно расположить по убежищу на позиции каждого жителя.
  5. В пятом запросе второе убежище достаточно расположить около жителей на позициях $$$10$$$ и $$$11$$$, тогда максимальное расстояние будет от жителя в точке $$$-5$$$ до убежища в $$$0$$$.
  6. В шестом запросе надо добавить одно убежище около $$$10$$$ и $$$11$$$, а второе в позиции $$$-2.5$$$.