Каждый год БерГУ (Берляндский Государственный Университет) проводит олимпиаду по программированию под названием «Чемпионат Берляндки». В этом году задачи помогал готовить Андрей — студент БГАУ (Берляндский Государственный Альтернативный Университет). Всего было подготовлено m задач.
Андрей очень гордится своим вузом, поэтому хочет, чтобы команда БГАУ выиграла. Он, конечно, не может сливать условия задач командам БГАУ до начала контеста, однако он может дать совет, как сформировать команды.
Всего от БГАУ в олимпиаде собирается участвовать n студентов. Для каждого студента Андрей знает, какие из задач он способен решить, а также какова его производительность — максимальное количество задач, которое он может решить во время контеста. Каждая команда должна состоять максимум из трёх студентов. Андрей верит в студентов БГАУ, поэтому считает, что каждая команда во время контеста будет действовать оптимально, то есть решит максимально возможное для себя количество задач (при этом ни один из членов команды не решит больше задач, чем его производительность, а также команда не сможет решить задачи, которые не умеет решать ни один из её членов).
Помогите Андрею сформировать ровно одну команду из трёх студентов таким образом, чтобы она смогла решить наибольшее возможное количество задач среди всех возможных команд БГАУ.
В первой строке записано два целых числа n, m (3 ≤ n ≤ 50, 1 ≤ m ≤ 1000) — количество студентов БГАУ и количество задач соответственно.
Во второй строке записан массив p, состоящий из n целых чисел, где pi (0 ≤ pi ≤ m) — производительность i-го студента.
В i-ой из следующих n строк записана строка из заглавных и строчных латинских букв namei (|namei| ≤ 10) — имя i-го студента. Имена всех студентов попарно различны.
Далее записана бинарная матрица a размера n × m, строки которой соответствуют студентам, а столбцы — задачам. Если ai, j равно 1, то i-й студент может решить j-ю задачу, иначе — не может.
В первой строке выведите единственное целое число s — максимальное количество задач, которое может решить сформированная Андреем команда.
Во второй строке выведите через пробел имена студентов, составляющих эту команду. Имена студентов можно выводить в любом порядке.
Если существует несколько оптимальных ответов, выведите любой из них.
5 5
3 2 2 3 1
Slava
Andrew
Egor
Denis
Sergey
11011
10100
00001
00100
10000
5
Slava Andrew Egor
4 6
1 2 1 2
Denis
Andrew
Egor
Slava
100011
111100
000101
000111
5
Denis Andrew Slava
| Название |
|---|


