Роджер — робот. У него есть рука, представляющая собой последовательность из n соединённых друг с другом отрезков. Концы i-го отрезка изначально расположены в точках с координатами (i - 1, 0) и (i, 0). У i-го отрезка конец в (i - 1, 0) окрашен в красный цвет, а конец в (i, 0) — в синий. Таким образом, синий конец i-го отрезка касается красного конца (i + 1)-го отрезка для всех соответствующих i.
Роджер может двигать рукой двумя различными способами:
- Он может выбрать отрезок и увеличить его длину. Пусть был выбран отрезок i и длина l, тогда изменение происходит описанным дальше образом. Красный конец отрезка номер i и отрезки от 1 до i - 1 фиксируются. Посмотрим на луч от красного конца до синего конца i-го отрезка. Синий конец и отрезки от i + 1 до n переносятся на l в направлении этого луча.
На этой иллюстрации красный конец помечен А, а отрезки до А остаются на своём месте, в то время как синий конец помечен В и отрезки после B переносятся вдоль луча.
- Он может выбрать отрезок и повернуть его. Пусть был выбран отрезок номер i и угол a. Красный конец i-го отрезка и все отрезки от 1 до i - 1 останутся на месте. Синий конец этого отрезка и отрезков от i + 1 до n будут вращаться по часовой стрелке на угол a градусов вокруг красной точки.
На этой иллюстрации красный конец помечен А, а отрезки до А остаются на местах, в то время как синий конец помечен как B и отрезки после В повернутся вокруг точки А.
Роджер будет двигать рукой m раз. Эти преобразования немного сложные, поэтому Роджер быстро путается и перестаёт понимать, где находится синий конец последнего отрезка. Помогите ему вычислить координаты синего конца последнего отрезка после применения каждой операции. Обратите внимание, что во время выполнения всех действий рука Роджера может произвольно пересекаться сама с собой.
Выходные данные
Выведите m строк. В i-ой строке должны быть записаны два вещественных числа, обозначающие координаты синего конца последнего отрезка после завершения операций 1, ..., i. Ваш ответ будет считаться правильным, если его абсолютная или относительная ошибка не будет превосходить 10 - 4.
А именно: пусть ваш ответ равен a, а ответ жюри — b. Проверяющая программа будет считать ваш ответ правильным, если
.
Примечание
Следующие картинки иллюстрируют пример и показывают состояние руки после каждой операции. Координаты точки F выведены после применения каждой операции. Для простоты мы показываем только синие концы отрезка (за исключением красного конца первого). Например, точка, помеченная В, является синим концом отрезка 1, а также красным концом отрезка 2.
Начальное состояние:
Увеличить длину отрезка
1 на
3.
Повернуть отрезок
3 на
90 градусов по часовой стрелке.
Повернуть отрезок
5 на
48 градусов по часовой стрелке.
Увеличить длину отрезка
4 на
1.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 4 1 1 3 2 3 90 2 5 48 1 4 1
|
8.0000000000 0.0000000000
5.0000000000 -3.0000000000
4.2568551745 -2.6691306064
4.2568551745 -3.6691306064
|