Problem: Let's define the cost of a string s as the number of index pairs i and j (1 ≤ i < j < |s|) such that s_i = s_j and s_{i+1} = s_{j+1}.

You are given two positive integers n and k. Among all strings with length n that contain only the first k characters of the Latin alphabet, find a string with minimum possible cost. If there are multiple such strings with minimum cost — find any of them.

Input

The only line contains two integers n and k (1 ≤ n ≤ 2 ⋅ 10^5; 1 ≤ k ≤ 26).

Output

Print the string s such that it consists of n characters, each its character is one of the k first Latin letters, and it has the minimum possible cost among all these strings. If there are multiple such strings — print any of them.

Examples

Input


9 4


Output


aabacadbb


Input


5 1


Output


aaaaa

Input


10 26


Output


codeforces

Solution (in PYTHON3):

Solution:
# import io, os, sys

# input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline
# input = sys.stdin.readline

def evaluate(s):
    n = len(s)
    res = 0
    for i in range(n):
        for j in range(i+1, n-1):
            if s[i:i+2] == s[j:j+2]:
                res += 1
    return res

n, k = map(int, input().split())

alphabet = 'abcdefghijklmnopqrstuvwxyz'[:k]

digrams = set()

# print('alphabet', alphabet)

res = ['a']

for i in range(1, n):
    # print('digrams', digrams)
    last_letter = res[-1]
    for c in alphabet:
        if c + alphabet[-1] in digrams:
            continue
        d = last_letter + c
        if d not in digrams:
            new_letter = c
            # print('adding', c)
            digrams.add(d)
            break
    else:
        digrams = set()
        new_letter = 'a'
    res.append(new_letter)

print(*res, sep='')