Little penguin Polo adores strings. But most of all he adores strings of length *n*.

One day he wanted to find a string that meets the following conditions:
 1.  The string consists of *n* lowercase English letters (that is, the string's length equals *n*), exactly *k* of these letters are distinct. 1.  No two neighbouring letters of a string coincide; that is, if we represent a string as *s* = *s*<sub class="lower-index">1</sub>*s*<sub class="lower-index">2</sub>... *s*<sub class="lower-index">*n*</sub>, then the following inequality holds, *s*<sub class="lower-index">*i*</sub> ≠ *s*<sub class="lower-index">*i* + 1</sub>(1 ≤ *i* &lt; *n*). 1.  Among all strings that meet points 1 and 2, the required string is lexicographically smallest. 
Help him find such string or state that such string doesn't exist.

String *x* = *x*<sub class="lower-index">1</sub>*x*<sub class="lower-index">2</sub>... *x*<sub class="lower-index">*p*</sub> is lexicographically less than string *y* = *y*<sub class="lower-index">1</sub>*y*<sub class="lower-index">2</sub>... *y*<sub class="lower-index">*q*</sub>, if either *p* &lt; *q* and *x*<sub class="lower-index">1</sub> = *y*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub> = *y*<sub class="lower-index">2</sub>, ... , *x*<sub class="lower-index">*p*</sub> = *y*<sub class="lower-index">*p*</sub>, or there is such number *r* (*r* &lt; *p*, *r* &lt; *q*), that *x*<sub class="lower-index">1</sub> = *y*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub> = *y*<sub class="lower-index">2</sub>, ... , *x*<sub class="lower-index">*r*</sub> = *y*<sub class="lower-index">*r*</sub> and *x*<sub class="lower-index">*r* + 1</sub> &lt; *y*<sub class="lower-index">*r* + 1</sub>. The characters of the strings are compared by their ASCII codes.
A single line contains two positive integers *n* and *k* (1 ≤ *n* ≤ 10<sup class="upper-index">6</sup>, 1 ≤ *k* ≤ 26) — the string's length and the number of distinct letters.
from sys import stdin
from collections import deque,Counter,defaultdict,OrderedDict
import sys
import math,os
import operator
import random
from fractions import Fraction
import functools
import bisect
import itertools
from heapq import *
import time
import copy

n, k = map(int,input().split())
string = 'ab'*(n//2)
l = n-len(string)
string = (string[0:len(string)-l])
x = 99
for i in range(k-2):
    string+=chr(x)
    x+=1
if n == len(string):
    print(string)
else:
    print(-1)
