Codeforces Round 302 (Div. 1) |
---|
Закончено |
У вас есть набор из n строк одинаковой длины, состоящих из строчных букв английского языка. Будем говорить, что набор строк просто запомнить, если для каждой строки существует некоторая позиция i и некоторая буква c английского алфавита, такие, что эта строка является единственной в наборе, имеющей букву c в позиции i.
Например, набор строк {«abc», «aba», «adc», «ada»} нельзя просто запомнить. А набор {«abc», «ada», «ssa»} можно просто запомнить, поскольку:
Вы хотите немного изменить ваш набор так, чтобы его можно было просто запомнить. За aij монет вы можете изменить символ в j-й позиции в i-й строке на любой другую строчную букву английского алфавита. Определите, какое минимальное количество монет нужно заплатить за выполнение изменений, чтобы набор строк можно было просто запомнить.
В первой строке записано два целых числа n, m (1 ≤ n, m ≤ 20) — количество строк в наборе и длина строк, соответственно. В следующих n строках заданы строки набора, которые состоят только из строчных букв английского алфавита и имеют длину m.
В следующих n строках записано по целых m чисел, в i-й из них записаны целые числа ai1, ai2, ..., aim (0 ≤ aij ≤ 106).
Выведите единственное число — ответ на задачу.
4 5
abcde
abcde
abcde
abcde
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
3
4 3
abc
aba
adc
ada
10 10 10
10 1 10
10 10 10
10 1 10
2
3 3
abc
ada
ssa
1 1 1
1 1 1
1 1 1
0
Название |
---|