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>
#define ll long long
#define LL long long
#define ld long double
#define lowbit(x) (x&-x)
#define MOD (1000000007LL)
#define endl '\n'
#define SZ(x) ((int)x.size())
#define ALL(x) (x.begin(),x.end())
#define PB push_back
#define MXN (200005)
#define EPS (1e-6)
#define INF (1e9)
#define cl(x) ((x<<1)+1)
#define cr(x) ((x<<1)+2)
#define FZ(x) memset(x,0,sizeof(x)

using namespace std;

mt19937 gen(chrono::steady_clock::now().time_since_epoch().count());

template<typename T1,typename T2>
ostream& operator<<(ostream& out,const pair<T1,T2>& p){
	out<<p.first<<" "<<p.second;
	return out;
}

// #define DEBUG

int n,k;

void solve(){
    string s;
    cin>>n>>k;
    for(int i=0;i<k;i++){
        s += char('a'+i);
        for(int j=i+1;j<k;j++){
            s += char('a'+i);
            s += char('a'+j);
        }
    }
    int l=s.size();
    for(int i=0;i<n;i++)    cout<<s[i%l];
    cout<<endl;
}

int main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int t = 1;
    // cin>>t;
    for(int cas=1;cas<=t;cas++){
        solve();
    }    
    return 0;
}
/*
aabacbbcc
*/