ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1552. Brainfuck

Ограничение времени: 2.0 секунды
Ограничение памяти: 64 МБ
Chairman of "Horns and hoofs" company, Mr. Phunt, decided to start advertising campaign. First of all, he wants to install an indicator panel on the main square of the city that will show advertisements of the company. So he charged the manager of the company, Mr. Balaganov, to do this job.
After analyzing offers of indicator panels, Balaganov ordered one at a price of only $19999.99. But when it was delivered, a little problem was found. The panel was programmable, but the instruction set of the processor was a subset of brainfuck language commands. The commands that processor was capable to execute were '>', '<', '+', '−' and '.', which are described in the table below. Moreover, this panel had very little memory for the program, so not every program typing a particular string will fit into memory.
Now Balaganov wants to know the minimal program that will output the given string. But because he is not very good at programming, he asks you to solve this problem. The brainfuck program is a sequence of commands executed sequentially (there are some exceptions, but panel processor cannot execute such commands). The brainfuck machine has, besides the program, an array of 30000 byte cells initialized to zeros and a pointer into this array. The pointer is initialized to point to the leftmost byte of the array.
Command Description
> Increment the pointer (to point to the next cell to the right). If the pointer before increment points to the rightmost byte of the array, then after increment it points to the leftmost byte.
< Decrement the pointer (to point to the next cell to the left). If the pointer before decrement points to the leftmost byte of the array, then after increment it points to the rightmost byte.
+ Increment (increase by one) the byte at the pointer. If the value of the cell before increment is 255 then it becomes 0.
Decrement (decrease by one) the byte at the pointer. If the value of the cell before decrement is 0 then it becomes 255.
. Output the value of the byte at the pointer.

Исходные данные

Input has one line containing the string brainfuck program must output. Every character of the string is a small English letter ('a'–'z'). The length of the string is not greater than 50. You may assume that optimal program will not have to modify more than four memory cells.

Результат

Output one line with minimal brainfuck program. Any characters except '>', '<', '+', '−' and '.' are not allowed (quotes for clarity only). If there are several solutions any will be acceptable.

Пример

исходные данныерезультат
a
+++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++.

Замечания

Please note that the sample output is divided into several lines only for convenience. In the real output whole program must be printed on a single line.
Источник задачи: Novosibirsk SU Contest. Petrozavodsk training camp, September 2007