Настав останній день літнього табору, і ви раптом заблукали в лабіринті на шляху до кампусу Комаба університету Токіо. Змагання вже почалося, і ваші товариші по команді з нетерпінням чекають на вас. Вам потрібно якомога швидше вибратися з цього лабіринту.
Лабіринт представлений у вигляді карти на сітці. Спочатку кожна клітинка, окрім стін і сходів, розташована або на першому, або на другому поверсі. Деякі клітинки мають перемикач, який може переміщати їх вгору або вниз (клітинки на першому поверсі переміщуються на другий поверх, а клітинки з другого поверху на перший).
На кожному кроці ви можете виконати одну з наступних дій:
Перейти на сусідню клітинку (включаючи сходи) того ж поверху, де ви знаходитесь.
Перейти на інший поверх (якщо ви знаходитесь на клітинці зі сходами).
Використати перемикач (якщо ви знаходитесь на клітинці з перемикачем).
На щастя, ви щойно знайшли карту лабіринту. Обчисліть найменшу кількість дій, яку потрібно виконати, щоб вибратися з лабіринту і дістатися до місця, де вас чекають члени вашої команди!
Формат вхідних даних наступний.
M_{11}M_{12}M_{13}…M_{1W}
M_{21}M_{22}M_{23}…M_{2W}
M_{H1}M_{H2}M_{H3}…M_{HW}
MS_{111}MS_{112}MS_{113}…MS_{11W}
MS_{121}MS_{122}MS_{123}…MS_{12W}
MS_{1H1}MS_{1H2}MS_{1H3}…MS_{1HW}
MS_{211}MS_{212}MS_{213}…MS_{21W}
MS_{221}MS_{222}MS_{223}…MS_{22W}
MS_{2H1}MS_{2H2}MS_{2H3}…MS_{2HW}
MS_{S11}MS_{S12}MS_{S13}…MS_{S1W}
MS_{S21}MS_{S22}MS_{S23}…MS_{S2W}
MS_{SH1}MS_{SH2}MS_{SH3}…MS_{SHW}
Перший рядок містить два цілі числа (3 \le W \le 50) і (3 \le H \le 50) - ширина і висота лабіринту.
Наступні рядків описують початковий стан лабіринту. Кожне з M_{ij} є одним з наступних символів:
'#' позначає стіну,
'|' позначає сходи,
'_' позначає клітинку, що знаходиться на першому поверсі,
'^' позначає клітинку, що знаходиться на другому поверсі,
літера нижнього регістру від '' до '' означає, що в клітинці знаходиться перемикач, клітинка спочатку знаходиться на першому поверсі,
літера верхнього регістру від '' до '' означає, що в клітинці знаходиться перемикач, клітинка спочатку знаходиться на другому поверсі,
'%' позначає клітинку, в якій ви спочатку знаходитесь (і вона розташована на першому поверсі),
'&' позначає клітинку - вихід з лабіринту (яка спочатку на першому поверсі).
Наступний рядок містить значення (0 \le S \le 10), а наступні S \cdot H рядків описують інформацію про перемикачі. Кожне MS_{kij} є одним з:
'#' якщо M_{ij} дорівнює '#',
'|' якщо M_{ij} дорівнює '|',
'*' якщо клітинка переміщується перемикачем, представленим -ою літерою в алфавіті,
'.' інакше.
Клітинка, що містить перемикач, може бути переміщена зміною стану перемикача. У цьому випадку ви рухаєтеся разом з клітинкою.
Кожен з символів '%' (початок) і '&' (ціль) на карті присутній в єдиному екземплярі, карта оточена стінами, на карті присутні тільки літери від '' (або '') і до -ої літери в алфавіті.
Виведіть найменшу кількість дій, необхідну для досягнення цілі. Якщо рішення не існує, виведіть "".
Приклад 1