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:
from collections import Counter, defaultdict, deque
import bisect
from sys import stdin, stdout
from itertools import repeat
import math
import timeit

def inp(force_list=False):
    re = map(int, raw_input().split())
    if len(re) == 1 and not force_list:
        return re[0]
    return re

def inst():
    return raw_input().strip()

def gcd(x, y):
   while(y):
       x, y = y, x % y
   return x

mod = 1000000007
N = 16
def my_main():
    kase = 1 #inp()
    pans = []
    for _ in xrange(kase):
        n, k = inp()
        ans = [0]
        mp = [0] * (k*k)
        last = 0
        for i in range(n-1):
            for j in range(k):
                j = (last+j)%k
                if mp[last*k+j] == 0:
                    mp[last*k+j] = 1
                    ans.append(j)
                    last = j
                    break
            else:
                # print mp
                ans.append(0)
                mp = [0] * (k*k)
                mp[last*k] = 1
                last = 0
        # print chr(97)
        print ''.join(map(lambda c:chr(97+c), ans))


    # print ' '.join(map(str, ans))

my_main()