Вы застряли в Закулисье регулярности — измерении, напоминающем обычное Закулисье, но подчиняющемся своим особым правилам. К счастью, вам повезло, и вам попался блокнот с описанием того, как проходить различные комнаты, и планом побега.
Всего существует $$$n$$$ типов комнат. Для каждого типа известно, сколько минут занимает прохождение этой комнаты. План побега — это строка. Каждая из первых $$$n$$$ заглавных букв латинского алфавита обозначает комнату и сама по себе является корректным планом побега. Пусть $$$s$$$, $$$f$$$ — корректные планы побега, тогда:
Пока вы ещё в шоке от случившегося и не приступили к исполнению плана, рассчитайте, сколько минимум и максимум вы можете бродить по Закулисью, следуя плану. Либо определите, что бродить вам столь долго, что не отличимо от вечности...
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ — количество наборов входных данных $$$(1 \leq t \leq 10^4)$$$. Далее следует описание наборов входных данных.
В первой строке вводится целое число $$$n$$$ — количество различных типов комнат в Закулисье. $$$(1 \leq n \leq 26)$$$.
Во второй строке вводятся $$$n$$$ целых чисел $$$a_i$$$ — длительность прохождения комнаты типа $$$i$$$ $$$(1 \leq a_i \leq 1000)$$$;
В третьей строке вводится строка $$$P$$$ — сам план. Гарантируется, что план соответствует описанному формату $$$(1 \leq |P| \leq 10^5)$$$.
Гарантируется, что сумма длин строк $$$|P|$$$ по всем наборам не превосходит $$$10^5$$$.
Для каждого набора входных данных выведите два целых числа — минимум и максимум, сколько может продлиться исполнение плана побега. Если минимум или максимум строго больше чем $$$10^{16}$$$, выведите вместо этого числа строку «inf».
431 2 3A|B33 2 1A(B|C)314(A(AA|A(A)9A)|AAA)21100((((((((((((((((A)9)9)9)9)9)9)9)9)9)9)9)9)9)9)9)9
1 26 924 96inf inf