Задача B. Файловый менеджер

Автор:Жюри ROI-2006   Ограничение времени:2 сек
Входной файл:fur.in   Ограничение памяти:256 Мб
Выходной файл:fur.out  
Максимальный балл:100  

Условие

Петя работает над очень большим проектом. Проект содержит N файлов. В процессе работы Пете часто приходится просматривать и редактировать файлы. Для ускорения работы Петя использует файловый менеджер Fur Manager, который отображает список имен файлов проекта в некотором порядке.

В текущей версии Fur Manager’a для перемещения по списку имен файлов есть следующие возможности:

Первая и вторая из описанных возможностей файлового менеджера требуют по одному нажатию клавиши, а третья — одного нажатия (нажатие клавиши Alt) плюс количество нажатий, равное длине набранной последовательности латинских букв.

Файлы пронумерованы от 1 до N в порядке их следования. После загрузки Fur Manager’а курсор находится на первом файле.

Петя знает, что ему сначала придется редактировать файл с номером a1, затем с номером a2 и так далее, а последним — файл с номером ak. В последовательности a1, a2, …, ak один и тот же номер может встречаться несколько раз. При каждом перемещении от одного файла к другому Петя хочет нажимать как можно меньше клавиш.

Требуется написать программу, которая выдает искомую последовательность нажатий клавиш.

Формат входного файла

В первой строке входного файла записано целое число N (1 ≤ N ≤ 1000) — количество файлов в проекте.

В следующих N строках записаны имена файлов, по одному в каждой строке. Файлы перечислены в том порядке, в котором они отображаются файловым менеджером. Имена состоят только из строчных латинских букв. Длина каждого имени не превосходит 2000 символов. Все имена файлов различны.

Далее в следующей строке записано целое число k (1 ≤ k ≤ 10).

Последняя строка входного файла содержит k целых чисел a1, a2, …, ak (1 ≤ ai ≤ N) — номера редактируемых файлов. Редактирование файлов выполняется в том порядке, в котором они встречаются в последовательности a1, a2, …, ak.

Формат выходного файла

Выходной файл должен содержать описание искомой последовательности нажатий клавиш в виде k блоков информации:

Каждый блок информации выглядит следующим образом.

В первой строке блока записывается число L — наименьшее количество нажатий клавиш, необходимое для перемещения от очередного файла последовательности к следующему.

Следующие L строк блока описывают нажимаемые клавиши. Каждая из строк содержит описание одной клавиши:

Если существует несколько оптимальных способов перемещения, то требуется вывести любой из них.

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

Входной файл (fur.in) Выходной файл (fur.out)
1
6
submit
monitor
monitorx
monyator
subversion
sub
5
6 3 3 5 2
1
up
3
Alt
m
down
0
2
down
down
2
Alt
m
2
8
abc
abv
abba
auto
test
auvto
ioi
olympiad
2
4 6
3
Alt
a
u
2
down
down

0.122s 0.020s 15