Задача №3194. Простое уравнение

Данные задачи можно решить и без использования регулярных выражений, однако они собраны в этом разделе не зря)

Илья уже изучил много видов уравнений. Он знает, что они бывают линейными, квадратными, рациональными и так далее. Теперь Илья хочет поразить воображение одноклассников, написав программу, которая будет по введенному уравнению определять его вид. Однако с программированием у Ильи серьезные проблемы, и он попросил вас написать такую программу.

Илья хочет, чтобы программа поддерживала 3 типа уравнений: квадратные, тригонометрические, логарифмические. Также он решил, что вводимое уравнение всегда будет однотипным, то есть будет содержать элементы только одного типа уравнений. В уравнении должна быть только одна неизвестная переменная - большая или маленькая латинская буква (в условии в качестве переменной возьмем x). Рассмотрим формальное определение уравнения:

<уравнение> ::= <элемент><=><элемент>

Типы элементов:

<линейный элемент> ::= подстрока, содержащая цифры, неизвестную переменную, знаки операций (*,-,+,/,^(возведение в степень)) и круглые скобки.

<квадратный элемент> ::= добавление к линейному элементу конструкций "x^2" и "xx". Вообще несколько подряд идущих x аналогично x^(количество x), то есть xxxx эквивалентно x^4.

<логарифмический элемент> ::= добавление к линейному элементу конструкций "log","ln","exp". Log и ln обозначают натуральный логарифм.

<тригонометрический элемент> ::= добавление к линейному элементу конструкций "sin","cos","tn".

Илья также хочет, чтобы программа проверяла корректность уравнения. Уравнение некорректно если:

1. В записи уравнения есть ошибки, например, скобки не образуют правильной скобочной последовательности и тому подобное.

2. В каких-то числах встречаются ведущие нули.

3. В уравнении встречается несколько неизвестных переменных или неизвестные функции. Уравнение также некорректно, если в нем нет неизвестных переменных.

4. В уравнении встречается деление на 0 (других неверных операций быть не может). Более того, если до совершения арифметических операций, в уравнении деления на 0 не было, а потом оно появилось, то уравнение некорректно. Например, уравнение 2-x=x/(4-2^2) некорректно. Гарантируется, что результат таких промежуточных вычислений всегда помещается в тип int (longint в паскале), а все числа в уравнении не превосходят по модулю 40000. При вычислении синуса, косинуса, тангенса (вычисляются в радианах), логарифма и экспоненты следует брать лишь целую часть результата.

Знак "*" может быть опущен в следующих случаях:

1. Перед открывающей и после закрывающей скобок.

2. После числа, стоящего перед неизвестной переменной.

3. После неизвестной переменной или числа, стоящих перед функцией.

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

Единственная строка, длиной не более 255 символов с кодами от 32 до 127. Считать, что заглавные и прописные латинские буквы одинаковы.

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

Выведите wrong, если уравнение некорректно, в противном случае выведите тип уравнения: square для квадратного, trigonometric для тригонометрического, logarithmic для логарифмического или another, если уравнение не подпадает ни под один из типов.

Примеры тестов

Примеры
Входные данные
x(x+5)(x+1)x(3+7-2^4)2=0
Выходные данные
another
Входные данные
(sin(x))^2+(cos(x))^2=1
Выходные данные
trigonometric
Сдать: для сдачи задач необходимо войти в систему