Двухколесная повозка
Международная автомобильная производственная компания (ICPC), один из крупнейших производителей автомобилей в мире, разрабатывает новое транспортное средство под названием "Двухколесный Багги". Как следует из названия, у этого транспортного средства всего два колеса. В целом, "Двухколесный Багги" состоит из двух колес (левого и правого) и оси (штанги, соединяющей два колеса). На рисунке ниже показана его базовая структура.
Рисунок 1: Базовая структура багги
Прежде чем создать прототип этого нового транспортного средства, компания решила провести компьютерное моделирование. Подробности моделирования следующие.
В моделировании багги будет двигаться по плоскости x-y. Пусть D будет расстоянием от центра оси до колес. В начале моделирования центр оси находится в (0, 0), левое колесо — в (−D, 0), а правое колесо — в (D, 0). Радиусы обоих колес равны 1.
Рисунок 2: Начальная позиция багги
Движение багги в моделировании контролируется последовательностью инструкций. Каждая инструкция состоит из трех чисел: Lspeed, Rspeed и time. Lspeed и Rspeed указывают скорость вращения левого и правого колес соответственно, выраженную в градусах в секунду. time указывает, сколько секунд эти два колеса сохраняют свою скорость вращения. Если скорость колеса положительная, оно будет вращаться в направлении, которое заставляет багги двигаться вперед. Если скорость отрицательная, колесо будет вращаться в противоположном направлении. Например, если Lspeed равно −360, левое колесо будет вращаться на 360 градусов за одну секунду в направлении, которое заставляет багги двигаться назад. Мы можем установить Lspeed и Rspeed по-разному, и это заставит багги поворачивать влево или вправо. Обратите внимание, что можно установить одно из них положительным, а другое отрицательным (в этом случае багги будет вращаться на месте).
Рисунок 3: Примеры
Ваша задача — написать программу, которая вычисляет конечное положение багги, учитывая последовательность инструкций. Для простоты можно предположить, что колеса не имеют ширины и никогда не скользят.
Входные данные
Входные данные состоят из нескольких наборов данных. Каждый набор данных форматируется следующим образом.
N D Lspeed_1 Rspeed_1 time_1 ... Lspeed_i Rspeed_i time_i ... Lspeed_N Rspeed_N time_N
Первая строка набора данных содержит два положительных целых числа, N и D (1 ≤ N ≤ 100, 1 ≤ D ≤ 10). N указывает количество инструкций в наборе данных, а D указывает расстояние между центром оси и колесами. Следующие N строк описывают последовательность инструкций. i-я строка содержит три целых числа: Lspeed_i, Rspeed_i и time_i (−360 ≤ Lspeed_i, Rspeed_i ≤ 360, 1 ≤ time_i), описывающие i-ю инструкцию для багги. Можно предположить, что сумма time_i не превышает 500.
Конец ввода обозначается строкой, содержащей два нуля. Эта строка не является частью какого-либо набора данных и, следовательно, не должна обрабатываться.
Выходные данные
Для каждого набора данных выведите две строки, указывающие конечное положение центра оси. Первая строка должна содержать x-координату, а вторая строка должна содержать y-координату. Абсолютная ошибка должна быть меньше или равна 10^{−3}. В выводе не должно быть никаких лишних символов.