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
from heapq import heapify,heappush,heappop,heappushpop
from collections import defaultdict as dd, deque as dq,Counter as C
from math import factorial as f ,ceil,gcd,sqrt,log
from bisect import bisect_left as bl ,bisect_right as br
from itertools import combinations as c,permutations as p
from math import factorial as f ,ceil,gcd,sqrt,log
from sys import stdin
input = stdin.readline
mp = lambda : map(int,input().split())
it = lambda: int(input())
ls = lambda : list(input().strip())
mt = lambda  r : [ ls() for _ in range(r)]
lcm = lambda a,b : (a*b)//gcd(a,b)
def fibo_n(n):
	return (((1+sqrt(5))/2)**n)/sqrt(5)
mod = 1000000007
mx = 2*(10**5) +3
a,b = mp()
def solve(n,k):
	p =0
	st =97
	while 1:
		for i in range(k):
			ans[p]= chr(st+i)
			p+=1
			if p==n:return
			for j in range(i+1,k):
				ans[p] = chr(st+i)
				p+=1
				if p==n:return
				ans[p]=chr(st+j)
				p+=1
				if p==n:return
ans =[None]*a
solve(a,b)
print("".join(ans))