Scrabble
TopCoder TCO2014, Round 1A
Time Limit: 0.1s, Memory Limit: 64MiB
Ели играе Scrabble със семейството си. Точните правила на играта не са важни за тази задача, само това, че се играе с дървени парчета (плочки), всяко съдържащо по една главна буква от английската азбука. Ели има N такива плочки пред себе си, наредени една до друга. Можем да си представим, че те образуват стринг, първата буква от който е най-лявата плочка, а последната - най-дясната.

Докато чака останалите да направят своя ход, Ели се забавлява по следния начин. Тя тупва с ръка леко по масата, като така кара плочките да подскочат във въздуха. Част от тях падат обратно на старите си места, но някои отиват по-наляво или по-надясно. Може да считате, че те не застават една върху друга, тоест след като паднат те отново образуват стринг с дължина N, съставен от същите букви, евентуално в друг ред.

Ели удря по масата достатъчно леко, че никоя от плочките да не отиде повече от D позиции наляво или надясно. По-формално, ако позицията на дадена буква в началния стринг е била X, а позицията ѝ в крайния стринг е Y, то |X-Y| ≤ D. Например, нека плочките на Ели образуват думата "TOPCODER", а максималното разстояние D е 2. Две възможни техни подредби след тупване по масата са "POTCEORD" и "OCTDPEOR".

Сега Ели се чуди какъв е лексикографски най-малкият стринг, който може да се получи след точно едно удряне по масата.
Вход
На първия ред на стандартния вход ще бъдат зададени целите числа N и D - съответно броят плочки и максималното разстояние от началната си позиция, на което може да падне всяка от тях. На втория ред ще има стринг с дължина N, съставен от главни букви от английската азбука, който показва буквите в първоначалното им разположение.
Изход
На стандартния изход изведете лексикографски най-малката дума, която може да се получи по дадените правила.
Ограничения
  • 1 ≤ N ≤ 50
  • 1 ≤ D ≤ 9
Примерен Вход Примерен Изход
8 2 TOPCODER OCTDPEOR
19 5 WITHOUTITIMJUSTESPR HIIOIWJTMSUTETPRSUT
Мрън!