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 CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;




long long gcd(long long a , int b)
{
   if(b==0) return a;
   a%=b;
   return gcd(b,a);
}

int digitsum(long long n){
	int ans=0;
	while(n>0){
		ans+=n%10;
		n/=10;
	}
	return ans;
}


void solve(){
	int n,k; cin >> n >> k;
	string huge = "abcdefghijklmnopqrstuvwxyz";
	huge = huge.substr(0,k);
	string s = "";
	int sl = 0;
	for(int i=0;i<k;i++){
		s+=huge.substr(i,1); sl+=1;
		for(int j=i+1;j<k;j++){
			s = s + huge.substr(i,1) + huge.substr(j,1);
			sl+=2;
		}
	}
	int cm = 0;
	string ans = "";
	while(n>cm){
		ans+=s; cm+=sl;
	}
	//ans += s.substr(0,n-s.length());
	
	cout << ans.substr(0,n) << endl;
}





int main(){
	ios::sync_with_stdio(false);
    cin.tie(0);
    
    int tt=1; //cin>>tt;
    while(tt--){
		solve();
	}
    
    
    return 0;
}