Олимпиадный тренинг

Задача . A. Перестановка на простоту


Дана строка s, состоящая из строчных букв латинского алфавита. Будем обозначать длину строки |s|. Нумерация символов в этой строке начинается с 1.

Определите, возможно ли в строке s так переставить символы, чтобы для любого простого числа p ≤ |s| и для любого целого i в диапазоне от 1 до |s| / p (включительно) выполнялось условие sp = sp × i. В случае положительного ответа найдите один из способов так переставить символы.

Входные данные

В единственной строке записана исходная строка s, состоящая из строчных букв латинского алфавита (1 ≤ |s| ≤ 1000).

Выходные данные

Если в строке можно переставить символы так, чтобы выполнялись перечисленные выше условия, то выведите в первой строке «YES» (без кавычек) и во второй — одну из возможных получившихся строк. Если такая перестановка невозможна, выведите одну строку «NO».

Примечание

В первом примере подойдет любая из шести возможных строк «abc», «acb», «bac», «bca», «cab» или «cba».

Во втором примере никакая перестановка букв не будет выполнять условие при p = 2 (s2 = s4).

Третий тест — подойдет любая строка, в которой символ «y» не стоит на позиции 2, 3, 4, 6.


Примеры
Входные данныеВыходные данные
1 abc
YES
abc
2 abcd
NO
3 xxxyxxx
YES
xxxxxxy

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя