Codeforces Beta Round 12 (Див. 2) |
---|
Закончено |
Наступает пора весны, а это означает что на прилавках появляется большое количество фруктов. В один из солнечных дней мальчик Валерий решил пройтись по магазинам. Он составил список из m фруктов, которые хотел бы приобрести. В том случае, если Валера хотел купить несколько фруктов одного сорта, то он несколько раз заносил этот фрукт в свой список.
Подойдя к фруктовому ларьку Ашота, мальчик заметил, что продавец еще не успел наклеить ценники на свой товар, а только лишь разложил их на прилавке. В скором времени, когда Ашот присвоит каждому фрукту его цену, Валера сможет подсчитать, сколько денег ему потребуется для приобретения всего желаемого из списка. Однако мальчик хочет заранее знать минимальную (в случае «самого удачного» для Валеры распределения ценников) и максимальную (в случае «самого неудачного» для Валеры распределения ценников) стоимости покупки.
В первой строке входных данных записаны два целых числа n и m (1 ≤ n, m ≤ 100) — количество ценников, а, следовательно, и различных сортов фруктов, имеющихся у продавца Ашота, и количество записей в списке Валерия. Во второй строке через пробелы записаны n целых положительных чисел. Каждое из этих чисел не превосходит 100 и означает цену одного фрукта определенного сорта. В последующих m строках записаны названия фруктов, которые желает приобрести мальчик. Каждое название состоит из строчных букв латинского алфавита и имеет длину от 1 до 32 символов. Гарантируется, что число различных фруктов в списке не превосходит n. Также гарантируется, что у продавца в наличии имеются все фрукты, которые желает приобрести Валера.
Выведите через пробел два числа a и b (a ≤ b) — минимальную и максимальную суммы, необходимые Валере для того, чтобы приобрести все фрукты из своего списка.
5 3
4 2 1 10 5
apple
orange
mango
7 19
6 5
3 5 1 6 8 1
peach
grapefruit
banana
orange
orange
11 30
Название |
---|