3D Принтер
3D-печать — это метод создания объектов по цифровому шаблону. Принтер наносит слои полимерного материала, формируя целый 3D-объект в виде ряда плоских пластин разной формы, уложенных друг на друга. Полимер изначально достаточно липкий, чтобы пластины, напечатанные друг на друге, склеивались. После высыхания или затвердевания полученные объекты могут быть весьма прочными.
Рассмотрим 3D-принтер, в котором объекты для печати описываются как шаблон, состоящий из комбинации нескольких выпуклых многогранников (т.е. объектов с плоскими поверхностями, таких что прямая от одной внутренней точки к другой внутренней точке никогда не проходит за пределы объема объекта). Напишите программу для определения общего объема полимера, необходимого для создания объекта по заданному шаблону.
Входные данные
Входные данные содержат несколько тестов. Каждый тест начинается со строки с одним целым числом n (1 ≤ n ≤ 100), представляющим количество многогранников в этом шаблоне.
Последующие строки описывают n многогранников. Каждый многогранник начинается со строки, содержащей целое число f (3 < f < 30), которое является количеством граней многогранника. После этой строки идет ряд строк, описывающих полигоны, составляющие грани. Каждая такая строка начинается с целого числа v (3 ≤ v ≤ 24), которое является количеством вершин. Следом за v в той же строке идут 3*v вещественных чисел, представляющих v вершин как (x,y,z) координаты. Например, если v=3, то строка будет
v x_1 y_1 z_1 x_2 y_2 z_2 x_3 y_3 z_3
Все координаты будут в диапазоне [-100..100]. Вершины представлены в последовательном порядке; будет ребро полигона от (x_1, y_1, z_1) до (x_2, y_2, z_2), от (x_2, y_2, z_2) до (x_3, y_3, z_3) и так далее. Полигоны замкнуты, поэтому имеется подразумеваемое ребро от последней вершины в полигоне обратно к первой. Все вершины грани будут копланарны. Ребра не будут пересекаться, и каждая вершина будет лежать ровно на двух ребрах. Ни три (или более) вершины в полигоне не будут коллинеарны.
Ни один из многогранников в любом данном тесте не будет пересекаться. Входные данные заканчиваются строкой с одним 0.
Выходные данные
Для каждого шаблона выведите вещественное число в отдельной строке, указывающее объем полимера, необходимого в кубических сантиметрах. Объем должен быть выведен с точностью до двух десятичных знаков, округленный. Не выводите пробелы. Не выводите пустые строки между ответами.