D. Perse-script
ограничение по времени на тест
7 seconds
ограничение по памяти на тест
256 megabytes
ввод
стандартный ввод
вывод
стандартный вывод

Два друга решили создать язык программирования, назвали они его Perse-script.

Важная часть языка — строки. Строки в Perse-script записываются в кавычках (")

Например, "Hello" — константная строка. Но Hello — имя переменной или зарезервированное слово, которые мы не рассматриваем в этой задаче.

Perse-script — функциональный язык, в нем нет операторов. Например, чтобы сложить два числа нужно написать sum(a,b), а не a+b.

В языке есть несколько команд для работы со строками:

  • concat(x,y) возвращает конкатенацию («склейку») двух строк x и y. Например, concat("Hello","World") возвращает "HelloWorld".
  • reverse(x) возвращает перевернутую строку x. Например, reverse("Hello") возвращает "olleH".
  • substr(x,a,b) принимает строку x и два целых числа a и b (1 ≤ a ≤ b ≤ n, где n — длина строки x). Возвращает подстроку x с индекса a по индекс b, включительно. Например, substr("Hello",2,4) возвращает "ell".
  • substr(x,a,b,c) — другая версия substr, которая получает подстроку с шагом c. c всегда положительно. Например, substr("HelloWorld",1,10,2) возвращает "Hlool". Более точно: изначально ответ пуст. Эта функция добавляет в ответ a-ый символ, а затем каждый c-ый считая от него, и так до b.

Вы собираетесь реализовать работу со строками в Perse-script. Дано выражение, выведите его результат. Гарантируется, что все функции в качестве аргументов содержат только константные строки, записанные в кавычках, и перечисленные выше строковые функции.

Названия функций Perse-script регистронезависимы. Так, чтобы вызвать substr можно написать SUBsTr(). Но нельзя писать "hElLo" вместо "Hello".

Для дальнейшего разъяснения смотрите примеры.

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

Первая строка содержит корректное выражение. Гарантируется, что его длина не превосходит 103, и все целые числа не превосходят 100 по модулю. Заданная строка не пуста.

Все константные строки состоят только из больших и маленьких латинских букв.

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

В единственной строке выведите результат. Гарантируется, что ответ существует, и его длина не превосходит 104. Гарантируется, что ответ не является пустой строкой.

Примеры
Входные данные
"HelloWorld"
Выходные данные
"HelloWorld"
Входные данные
REVerse(substr("helloworld",1,5))
Выходные данные
"olleh"
Входные данные
conCAT(rEveRSE("olleh"),"world")
Выходные данные
"helloworld"
Входные данные
reversE(concAT(substr("hello",1,2),sUbstr("world",1,5,1)))
Выходные данные
"dlroweh"
Входные данные
suBstr("Noruz",1,4,2)
Выходные данные
"Nr"