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;
 
typedef long double ld;
const long long inf = 1100000000000000000;
#define maxn 200050
#define mod 1000000007 //998244353 
#define int long long 
#define PB push_back
#define F first
#define S second
#define vi vector<int>
#define rep(i,a,b)  for( int i = a; i < b; i++ )
#define rep1(i,a,b) for( int i = a; i <= b; i++)
#define repd(i,a,b) for( int i = a; i >= b; --i)
#define sz(x) (int)((x).size())  
#define all(c) (c).begin(),(c).end()
#define allr(v) v.rbegin(),v.rend()
#define mem(a,x) memset(a,x,sizeof(a))
#define dbg(a) cout << #a << " is " << (a); cout << "\n";
template <class T> void PR(T a[], int n, int x = 0) { for ( int i = x; i < n; i++ ) cout << a[i] << " "; cout<< "\n" ; }
template <class T> void PR(vector <T> v) { for ( T i : v ) cout << i << " " ; cout << "\n"; }
template <class T> void PR(set <T> s) { for ( T i : s ) cout << i << " " ; cout << "\n"; }
template <class T> void PR(multiset <T> s) { for ( T i : s ) cout << i << " " ; cout << "\n" ; }
const long double PI=3.141592653589793238462643383279502884197169399375105820974944;
//...
void solve(){
	int n, k; cin>>n>>k;
	string s = "";
	rep(i, 0, k){
		rep(j, i, k){
			s += (j+'a');
			if(j != k-1)
				s += (i+'a');
		}
	}
	int m = sz(s);
	rep(i, 0, n)
		cout<<s[i%m];
}

signed main(){
    ios_base::sync_with_stdio(false), cin.tie(nullptr);
	int T=1;// cin>>T; 
    while(T--){
        solve();cout<<'\n';
    }
    return 0;
}