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:
from collections import defaultdict

def f(s):
    b=[]
    for j in s:
        b.append(j)

    return b

j=1
val=[1]*(10)

while(j<=30):
    res=len(str(2**j))
    if res<=9 and val[res]==1:
        val[res]=2**j

    j+=1

j = 1
val1 = [1] * (10)
while (j <= 30):
    res = len(str(3 ** j))
    if res<=9 and val1[res] == 1:
        val1[res] = 3 ** j

    j += 1


p=10**9+7
v=1
for _ in range(v):
    #n=int(input())
    n,m=map(int,input().split())
    #req=f(input())
    #b=list(map(int,input().split()))
    res=[]
    cnt=0
    curr=97
    while(curr<97+m-1):
        j=97+m-1
        while(j>curr):
            res.append(chr(curr))
            res.append(chr(j))
            j+=-1
        curr+=1

    j=97+m-1
    while(j>=97):
        res.append(chr(j))
        j+=-1

    cnt=1
    ans=["a"]
    l=len(res)
    curr=0
    while(cnt<n):
        ans.append(res[curr%l])
        curr+=1
        cnt+=1

    print("".join(ans))