Андрійко та рядки
Обмеження: 2 сек., 256 МіБ
Окрім фрикадельок, Андрій дуже любить рядки.
Одного разу його друг Сергійко розказав йому таку задачу: задано два натуральних числа \(n\) та \(k\), потрібно знайти лексикографічно мінімальний рядок довжини \(n\), серед рядків що складаються лише з маленьких латинських літер і містять рівно \(k\) різних символів, а також кожні два сусідніх символи різні.
Посміявшись декілька секунд над фрикадельками, Андрійко відразу рішив задачу. А чи розв’яжете її ви?
Вхідні дані
У єдиному рядку задано два натуральні числа \(n\) та \(k\) — довжину рядка та кількість різних символів у ньому.
Вихідні дані
У єдиному рядку виведіть рядок довжини \(n\) — відповідь на задачу. Якщо ж шуканого
рядка не існує, виведіть -1
.
Обмеження
\(1 \le n \le 10^5\),
\(1 \le k \le 26\).
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
7 4 | ababacd |
Примітки
Рядок \(a\) лексикографічно менший за рядок \(b\), якщо знайдеться таке натуральне число \(i\), що \(a_i < b_i\), а також для всіх натуральних \(j\) менших за \(i\) виконується \(a_j = b_j\), або \(a\) є префіксом \(b\).
Надіслати розв'язок
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|