Андрійко та рядки
Limits: 2 sec., 256 MiB
Окрім фрикадельок, Андрій дуже любить рядки.
Одного разу його друг Сергійко розказав йому таку задачу: задано два натуральних числа \(n\) та \(k\), потрібно знайти лексикографічно мінімальний рядок довжини \(n\), серед рядків що складаються лише з маленьких латинських літер і містять рівно \(k\) різних символів, а також кожні два сусідніх символи різні.
Посміявшись декілька секунд над фрикадельками, Андрійко відразу рішив задачу. А чи розв’яжете її ви?
Input
У єдиному рядку задано два натуральні числа \(n\) та \(k\) — довжину рядка та кількість різних символів у ньому.
Output
У єдиному рядку виведіть рядок довжини \(n\) — відповідь на задачу. Якщо ж шуканого
рядка не існує, виведіть -1
.
Constraints
\(1 \le n \le 10^5\),
\(1 \le k \le 26\).
Samples
Input (stdin) | Output (stdout) |
---|---|
7 4 | ababacd |
Notes
Рядок \(a\) лексикографічно менший за рядок \(b\), якщо знайдеться таке натуральне число \(i\), що \(a_i < b_i\), а також для всіх натуральних \(j\) менших за \(i\) виконується \(a_j = b_j\), або \(a\) є префіксом \(b\).
Submit a solution
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|