У недалекому майбутньому космічні інженери можуть винайти нову технологію для подорожей у космосі, яку назвали варп-двигун. Цей варп-двигун дозволяє космічному кораблю подорожувати швидше за швидкість світла, згинаючи певну відстань у космосі, що дозволяє кораблю переміщатися через цей зігнутий простір за один стрибок. Для подорожі космосом корабель, оснащений варп-двигуном, може виконати кілька стрибків між початковою та кінцевою точками. Кількість енергії, необхідної для стрибка, залежить від поточного стану варп-двигуна, а також певна кількість енергії витрачається на підготовку або перемикання між станами варп-двигуна.
Мета
Припустимо, що ви інженер на бойовому космічному кораблі. Ваше завдання — налаштувати варп-двигун так, щоб він споживав якомога менше енергії під час будь-якої подорожі. Для кожної подорожі вам буде надано послідовність стрибків, для якої ви повинні знайти відповідну послідовність конфігурацій варп-двигуна, що використовує найменшу кількість енергії.
Щоб виконати своє завдання, ви повинні створити комп'ютерну програму, яка знайде найменшу енергію конфігурації варп-двигуна для будь-якої заданої послідовності стрибків, використовуючи дві таблиці енергоспоживання варп-двигуна. Перша таблиця показує енергію для перемикання між будь-якими двома станами. Друга таблиця показує енергоспоживання, пов'язане зі станами варп-двигуна та стрибками.
Вхідні дані складаються з частин, розділених порожнім рядком.
Перша частина визначає розміри станів варп-двигуна та типів стрибків.
Вона містить лише один рядок з числами, розділеними пробілом. Ці числа є:
Розмір станів варп-двигуна (), який належить до діапазону від до .
Ідентифікатори станів мають значення від до N - 1.
Перший стан (ідентифікатор ) — це неактивний стан. У цьому стані варп-двигун не може виконувати жодних стрибків. (Саме з цього стану починається та завершується будь-яка послідовність станів у відповіді.)
Кількість типів стрибків (), що належить до діапазону від до .
Ідентифікатори стрибків мають значення від до H - 1.
Друга частина — таблиця, що вказує енергію перемикання між станами варп-двигуна. Її розмір — рядків та стовпців, тобто N^2 значень енергії.
Є рядків. Кожен рядок містить енергетичних значень. Усі числа знаходяться в межах від до .
Кожне значення енергії індексується за рядком та стовпцем (спочатку ) — це ідентифікатори поточного й наступного стану відповідно.
Наприклад, значення з індексами (рядок , стовпець ) — це енергія для переходу зі стану № у стан . (Це перше число у шостому рядку.)
Третя частина — таблиця, що визначає енергоспоживання для виконання стрибків у кожному зі станів варп-двигуна.
Розмір таблиці — рядків на стовпців, тобто N \times H чисел.
Є рядків. Кожен рядок містить по енергетичних значень (у межах від до ).
Значення індексуються за рядком (ідентифікатор стану) та стовпцем (ідентифікатор стрибка), обидва починаються з .
Наприклад, значення з індексами (рядок , стовпець ) — це витрати енергії для варп-двигуна в стані для виконання стрибка . (Це десяте число у другому рядку.)
Зверніть увагу, що у першому рядку таблиці цієї частини, який відповідає стану (неактивний стан), усі значення дорівнюють нулю. Це означає, що у цьому стані не можна виконувати жодних стрибків.
Четверта частина — набір послідовностей стрибків; їх кількість від до .
Кількість рядків — від до .
Кожен рядок у цій частині містить одну послідовність стрибків.
Кількість стрибків у послідовності — від до .
Кожен стрибок позначається числом від до H - 1 та розділяється пробілом.
Порожній рядок після четвертої частини є закінченням введення.
Для кожної послідовності стрибків із четвертої частини введення ви повинні надрукувати у відповідь частини:
У першому рядку — загальну мінімальну кількість енергії.
У наступному рядку — розв'язок: послідовність станів варп-двигуна, відповідну заданій послідовності стрибків (довжини мають співпадати). Якщо існує декілька оптимальних рішень із однаковими витратами енергії, виведіть ту, у якій номери станів йдуть у найменшому порядку при ліво-правому порівнянні.
Додаткові пояснення
У першому прикладі (рішення для -го рядка введення) мінімальна енергія становить . Послідовність станів: , або [0-\ 3\ 2\ -0]. Відбулося перемикання: 0 \to 3, 3 \to 2, 2 \to 0, на які витрачено 1 + 1 + 2 = 4. І два стрибки ( та ) виконані у станах й відповідно (4 + 1 = 5). Сумарна енергія: 4 + 5 = 9.
У останньому прикладі мінімальна енергія — . Розв'язок — [0-\ 1\ 1\ 2\ 3\ -0], що витрачає всього енергії.
Приклад 1