Строка из палиндромов

Подсчитаем количество вхождений каждой буквы в строку. Каждая буква, которая встречается нечетное количество раз, должна быть серединой некоторого палиндрома нечетной длины (возможно, длины $$$1$$$), так как для нее нет парной буквы.

Тогда минимальное количество палиндромов, которое можно составить, равно количеству букв, встречающихся нечетное количество раз. Обозначим их количество за $$$k$$$. Если это число больше $$$m$$$, то ответ – NO.

Иначе, если $$$k \le m$$$, то построим $$$k$$$ палиндромов, в центрах которых – нечетные буквы. Если $$$k < m$$$, то оставшиеся $$$m-k$$$ палиндромов построим, используя оставшиеся буквы, количество которых четно.

Так как $$$m \le n$$$, то еще $$$m-k$$$ букв в слове точно есть. Получить ровно $$$m$$$ палиндромов можно, например, следующим образом:

- Если $$$m-k$$$ нечетно, то сделаем $$$m-k-1$$$ (четное число) букв серединами $$$1$$$-буквенных палиндромов. Количество оставшихся букв четно, из них можно получить еще $$$1$$$ палиндром.

- Иначе сделаем $$$m-k-2$$$ (также четное число) $$$1$$$-буквенных палиндромов, а оставшиеся буквы распределим в $$$2$$$ палиндрома поровну.

Ответ в этих случаях будет YES.