Простий рух, знову й знову…
t.A.T.u., «A Simple Motion»
Julia дуже любить прості рухи, особливо у тривимірному просторі! Нещодавно вона знайшла матрицю, що відповідає деякому обертанню навколо осі, яка проходить через початок координат.
Матриця обертання $A$ переводить точку $\begin{pmatrix}x\\y\\z\end{pmatrix}$ у $\begin{pmatrix}x'\\y'\\z'\end{pmatrix}$ таким чином:
$$ \begin{pmatrix}x'\\y'\\z'\end{pmatrix}= \begin{pmatrix}A_{11}&A_{12}&A_{13}\\A_{21}&A_{22}&A_{23}\\A_{31}&A_{32}&A_{33}\end{pmatrix} \times\begin{pmatrix}x\\y\\z\end{pmatrix}. $$
Обертання можна також описати геометрично за допомогою одиничного (тобто завдовжки $1$) вектора $v=\begin{pmatrix}v_x\\v_y\\v_z\end{pmatrix}$, навколо якого воно відбувається, та кута обертання $\alpha$. Припустімо, що ви дивитеся на початок координат із кінця вектора $v$. Тоді, якщо обертання відбувається проти годинникової стрілки, кут $\alpha$ додатний, а інакше — від'ємний.
Julia хоче геометрично виразити обертання, задане матрицею. На жаль, Julia не знає значень $v$ та $\alpha$, тому попросила вас знайти їх, щоб вона могла продовжити свій простий рух.
Вхідні дані
Дано матрицю $A$: три рядки, у кожному з яких по три дійсні числа. Кожне число має щонайбільше $20$ цифр після десяткової крапки. Гарантується, що існують такі $v$ та $\alpha$, що $1\le|\alpha|\le179$, і до того ж елементи матриці $A'$, яка відповідає обертанню навколо вектора $v$ на кут $\alpha$, відрізняються від відповідних елементів $A$ щонайбільше на $10^{-13}$.
Вихідні дані
У першому рядку виведіть кут $\alpha$ у градусах. У другому рядку виведіть координати одиничного вектора $v$. Усі числа виводьте якомога точніше. Відповідь вважатиметься правильною, якщо різниця між $A_{ij}$ та відповідним елементом матриці, побудованої за вашим кутом і одиничним вектором, не перевищує $10^{-6}$.
Приклади
Вхідні дані 1
0 -1 0 1 0 0 0 0 1
Вихідні дані 1
90 0 0 1