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 PYTHON):

Solution:
import sys
import math
from itertools import permutations
from itertools import combinations
input = sys.stdin.readline
for _ in range(1):
    n,k = map(int,input().split())
    d = []
    for i in range(26):
        o = []
        for j in range(26):
            o.append(0)

        d.append(o)

    if n == 1:
        print("a")
        continue

    ans = ["a","a"]
    for i in range(97,97+k):
        for j in range(i,97+k):
            # s1 = chr(i)+chr(j)
            # s2 = chr(j)+chr(i)
            d[i-97][j-97] = 0
            d[j-97][i-97] = 0

    d[0][0] = 1
    for i in range(n-2):
        ma = 10**18
        e = "0"
        for j in range(97,97+k):
            x = d[ord(ans[-1])-97][j-97]
            wa = 10**18
            for f in range(97,97+k):
                # y = d[chr(j)+chr(f)]
                y = d[j - 97][f - 97]
                if y < wa:
                    wa = y

            if x+wa < ma:
                e = chr(j)
                ma = x+wa

        # r = ans[-1]+e
        d[ord(ans[-1])-97][ord(e)-97] += 1
        ans.append(e)

    s = "".join(ans)
    sys.stdout.write(s+"\n")