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
import sys
import bisect
input_=lambda: sys.stdin.readline().strip("\r\n")
from math import log
from math import gcd
sa=lambda :input_()
sb=lambda:int(input_())
sc=lambda:input_().split()
sd=lambda:list(map(int,input_().split()))
se=lambda:float(input_())
sf=lambda:list(input_())
flsh=lambda: sys.stdout.flush()
#sys.setrecursionlimit(10**6)
mod=10**9+7
gp=[]
cost=[]
dp=[]
mx=[]
def dfs(root,par):
    global gp,cost,dp
    dp[root]=cost[root]
    for i in gp[root]:
        if i==par:continue
        dfs(i,root)
        dp[root]=max(dp[root],dp[i])
def hnbhai():
    n,k=sd()
    a=[]
    for i in range(k-1):
        a.append(chr(97+i))
        a.append(chr(97+i))
        for j in range(i+1,k-1):
            a.append(chr(97+j))
            a.append(chr(97+i))
        a.append(chr(97+k-1))
    a.append(chr(97+k-1))
    x=a*(n//len(a))+a[:n%len(a)]
    print("".join(x))
for _ in range(1):
    hnbhai()
