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

Задача . A. Пингвин Поло и строки


Маленький пингвин Поло очень любит строки. Но больше всего он любит строки длины n.

Однажды он захотел найти строку, которая удовлетворяет следующим условиям:

  1. Строка состоит из n строчных латинских букв (то есть длина строки равна n), среди этих букв ровно k различных.
  2. Никакие две соседние буквы строки не совпадают; то есть, если обозначить строку как s = s1s2... sn, то выполняется неравенство, si ≠ si + 1(1 ≤ i < n).
  3. Среди всех строк, удовлетворяющих пунктам 1 и 2, искомая строка лексикографически минимальная.

Помогите ему найти такую строку или сообщите, что такой строки нет.

Строка x = x1x2... xp лексикографически меньше строки y = y1y2... yq, если либо p < q и x1 = y1, x2 = y2, ... , xp = yp, либо существует такое число r (r < p, r < q), что x1 = y1, x2 = y2, ... , xr = yr и xr + 1 < yr + 1. Символы строк сравниваются как их ASCII коды.

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

В единственной строке записаны два целых положительных числа n и k (1 ≤ n ≤ 106, 1 ≤ k ≤ 26) — длина строки и количество различных букв.

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

В единственной строке выведите искомую строку. Если такой строки нет, выведите «-1» (без кавычек).


Примеры
Входные данныеВыходные данные
1 7 4
ababacd
2 4 7
-1

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

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