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 sys
import math
import random
input=sys.stdin.readline

n,k=map(int,input().split())
# l=['a']
# for i in range(k-1) :
#     l.append(chr(ord('a')+i+1))
ans=[k-1]
c=[[0 for i in range(k)] for j in range(k)]
for i in range(min(n,k*k)-1):
    for j in range(k) :
        if c[ans[-1]][j]==0:
            c[ans[-1]][j]=1
            ans.append(j)
            break 
    # print(c)
l=len(ans) 
# print(ans)
a=ans*(n//l)
if n%l!=0 :
    a.extend(ans[:n%l])
l=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
for i in range(n) :
    a[i]=l[a[i]]
print("".join(a))