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:
def dfs(v):
    global s0
    for u in range(k, 0, -1):
        if gr[v][u] == 1:
            gr[v][u] = 0
            dfs(u)
    s0 += [v]


s0 = []
n, k = map(int, input().split())
gr = [[1 for _ in range(k + 1)] for _ in range(k + 1)]
dfs(1)
s = ""
for i in s0:
    s += chr(i + 96)
i = 0
j = 0
while i < n:
    if j == len(s):
        j = 0
        if s[-1] == s[0]:
            j += 1
    print(s[j], end="")
    j += 1
    i += 1