#include<bits/stdc++.h>
#include<algorithm>
#include<numeric>
#include<string.h>
#include<map>
using namespace std;
 
#define M                    1000000007
#define pi                   3.14159265358979323846
#define ll                   long long int
#define lld                  long double
 
// Vector
#define vl                   vector<ll>
#define vi                   vector<int>
#define vpi                  vector<pii>
#define vpl                  vector<pll>
#define pb                   push_back
#define mp                   make_pair
 
#define w(t) int t; cin>>t; while(t--)
#define f(i,n) for(i=0;i<n;i++)
#define out(x) cout<<x<<endl;
#define ip(a,n) for(i=0;i<n;i++) cin>>a[i]; 
#define op(a,n) for(i=0;i<n;i++){ cout<<a[i]<<" ";} cout<<endl

void swap(int &a,int &b){ int temp=a; a=b; b=temp;}
 
int i,j,n;
// //==================================================================//

void solve(){
cin>>n;
int k;
cin>>k;
string s;
f(i,k){
  s+=char(i+'a');
  for(j=i+1;j<k;j++){
    s+=char(i+'a');
    s+=char(j+'a');
  }
}
string ans;
int q=n/s.size();
int r=n%s.size();
f(i,q){
  ans+=s;
}
ans+=s.substr(0,r);
cout<<ans;




// cout<<endl;
}



int main(){
  #ifndef ONLINE_JUDGE
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
  #endif

  // w(t)
  solve();
  return 0;
}

### Prompt

Create a solution in Cpp for the following 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

### Response

```cpp
#include<bits/stdc++.h>
#include<algorithm>
#include<numeric>
#include<string.h>
#include<map>
using namespace std;
 
#define M                    1000000007
#define pi                   3.14159265358979323846
#define ll                   long long int
#define lld                  long double
 
// Vector
#define vl                   vector<ll>
#define vi                   vector<int>
#define vpi                  vector<pii>
#define vpl                  vector<pll>
#define pb                   push_back
#define mp                   make_pair
 
#define w(t) int t; cin>>t; while(t--)
#define f(i,n) for(i=0;i<n;i++)
#define out(x) cout<<x<<endl;
#define ip(a,n) for(i=0;i<n;i++) cin>>a[i]; 
#define op(a,n) for(i=0;i<n;i++){ cout<<a[i]<<" ";} cout<<endl

void swap(int &a,int &b){ int temp=a; a=b; b=temp;}
 
int i,j,n;
// //==================================================================//

void solve(){
cin>>n;
int k;
cin>>k;
string s;
f(i,k){
  s+=char(i+'a');
  for(j=i+1;j<k;j++){
    s+=char(i+'a');
    s+=char(j+'a');
  }
}
string ans;
int q=n/s.size();
int r=n%s.size();
f(i,q){
  ans+=s;
}
ans+=s.substr(0,r);
cout<<ans;




// cout<<endl;
}



int main(){
  #ifndef ONLINE_JUDGE
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
  #endif

  // w(t)
  solve();
  return 0;
}

```