Задача №1149. Процедура writef
Фирма Macrohard разработала новый язык программирования: P--. В этом языке имеется K типов целых чисел – int, longint, longlongint, …, longlong…longint (K-1 раз long). Числа этих типов могут принимать значения в диапазонах 0..M0, 0..M1, …, 0..MK-1 соответственно.
Также, в этом языке имеется процедура вывода writef, которая имеет неограниченное количество параметров. В качестве первого параметра она получает строку, а в качестве второго и последующих может получать числа любого из поддерживаемых типов. При этом вывод осуществляется следующим способом: выводится строка, переданная первым параметром, в которой произведена подстановка параметров, а именно, вместо %i подставляется число типа int, вместо %li – число типа longint, вместо %ll…li (j букв l) – число типа longlong…longint (j раз long). Вывод числа осуществляется в системе счисления с основанием B (2 B 36).
Цифрами в системе счисления с основанием B являются обычные десятичные цифры и, если их недостаточно, заглавные буквы латинского алфавита в алфавитном порядке. Например, 10010=4С22, 126010=Z036.
При этом тип передаваемых параметров должен совпадать с соответствующими шаблонами. Например, если M0=300, M1=3000, M2=1000000, B=10, то writef(“hello %i%li”, 300, 500) выведет “hello 300500”.
Дана строка, которую вывела некоторая процедура writef. Выясните, какая самая короткая строка могла быть передана передана этой процедуре в качестве первого параметра. Например, для приведенного выше примера, это могла быть строка “hello %lli”.
На первой строке входного файла находятся числа K и B (1 K 50, 2 B 36). Следующая строка содержит числа M0, M1, …, MK-1 (0 M0 M1 … MK-1 109, числа заданы в десятичной системе счисления). На следующей строке находится текст, выведенный некоторой процедурой writef. Длина текста не превышает 200 символов. Текст не содерждит символов "%".
Выведите в выходной файл самую короткую строку, которая могла быть передана процедуре writef в качестве первого параметра. На второй строке перечислите все остальные параметры, которые были ей переданы, числа выводите в десятичной системе счисления и разделяйте ровно одним пробелом.
Если решений несколько, достаточно выдать любое.
3 10 300 3000 1000000 hello 300500
hello %lli 300500
1 4 1 hello 111
hello 111
1 2 10 hello 111
hello %i 7