C. Запоминаем строки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У вас есть набор из n строк одинаковой длины, состоящих из строчных букв английского языка. Будем говорить, что набор строк просто запомнить, если для каждой строки существует некоторая позиция i и некоторая буква c английского алфавита, такие, что эта строка является единственной в наборе, имеющей букву c в позиции i.

Например, набор строк {«abc», «aba», «adc», «ada»} нельзя просто запомнить. А набор {«abc», «ada», «ssa»} можно просто запомнить, поскольку:

  • первая строка является единственной строкой, имеющей символ c в позиции 3;
  • вторая строка является единственной строкой, имеющей символ d в позиции 2;
  • третья строка является единственной строкой, имеющей символ s в позиции 2.

Вы хотите немного изменить ваш набор так, чтобы его можно было просто запомнить. За 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