/*
            ▄▄▄▄▄ ▄ ▄ ▄ ▄
        ▄▄▄▄██▄████▀█▀█▀█▀██▄        @author
        ▀▄▀▄▀▄████▄█▄█▄█▄█████        DHRUV
        ▀▀▀▀▀▀▀▀██▀▀▀▀██▀  ▄██       VAVLIYA
                ▀▀    ▀▀ ▄▄██▀ 

*/

#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
// #include <ext/pb_ds/detail/standard_policies.hpp>
#define int long long int
#define double long double
#define mod 1000000007
#define M 998244353
const int inf = (1LL<<60) - 1;
const int N = 2e5 + 5;
using namespace std;


    // int n,q;
    // cin >> n >> q;
    // int a[n];
    // int t[q];

    // for(int i=0 ;i<n ;i++) cin >> a[i];
    // for(int i=0 ;i<q ;i++) cin >> t[i];

    // int ar[51] = {0};
    // for(int i =0 ;i<n ;i++){
    //     if (ar[a[i]] == 0){
    //         ar[a[i]] = i+1;
    //     }
    // }

    // for(int i=0 ;i<q;i++){
    //     cout << ar[t[i]] << ' ';

    //     for(int j=1 ;j<51 ;j++){
    //         if(j!=t[i]){
    //             if(ar[t[i]]!=0 && ar[t[i]] > ar[j]){
    //                 ar[j] += 1;
    //             }
    //         }
    //     }
    //     ar[t[i]] = 1;
    // }

int32_t main()
{
    // @author : Dhruv Vavliya
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n,k;
    cin >> n >> k;
    string ans;
    
    for(int i=0 ;i<k ;i++){
        ans.push_back('a'+ i );

        for(int j = i+1 ;j <k ;j++){
            ans.push_back('a' + i);
            ans.push_back('a' + j);
        }
    }
    while(ans.size() < n){
        ans += ans;
    }
    ans.resize(n);
    cout << ans << endl;
}
### Prompt

In CPP, your task is to solve 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
/*
            ▄▄▄▄▄ ▄ ▄ ▄ ▄
        ▄▄▄▄██▄████▀█▀█▀█▀██▄        @author
        ▀▄▀▄▀▄████▄█▄█▄█▄█████        DHRUV
        ▀▀▀▀▀▀▀▀██▀▀▀▀██▀  ▄██       VAVLIYA
                ▀▀    ▀▀ ▄▄██▀ 

*/

#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
// #include <ext/pb_ds/detail/standard_policies.hpp>
#define int long long int
#define double long double
#define mod 1000000007
#define M 998244353
const int inf = (1LL<<60) - 1;
const int N = 2e5 + 5;
using namespace std;


    // int n,q;
    // cin >> n >> q;
    // int a[n];
    // int t[q];

    // for(int i=0 ;i<n ;i++) cin >> a[i];
    // for(int i=0 ;i<q ;i++) cin >> t[i];

    // int ar[51] = {0};
    // for(int i =0 ;i<n ;i++){
    //     if (ar[a[i]] == 0){
    //         ar[a[i]] = i+1;
    //     }
    // }

    // for(int i=0 ;i<q;i++){
    //     cout << ar[t[i]] << ' ';

    //     for(int j=1 ;j<51 ;j++){
    //         if(j!=t[i]){
    //             if(ar[t[i]]!=0 && ar[t[i]] > ar[j]){
    //                 ar[j] += 1;
    //             }
    //         }
    //     }
    //     ar[t[i]] = 1;
    // }

int32_t main()
{
    // @author : Dhruv Vavliya
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n,k;
    cin >> n >> k;
    string ans;
    
    for(int i=0 ;i<k ;i++){
        ans.push_back('a'+ i );

        for(int j = i+1 ;j <k ;j++){
            ans.push_back('a' + i);
            ans.push_back('a' + j);
        }
    }
    while(ans.size() < n){
        ans += ans;
    }
    ans.resize(n);
    cout << ans << endl;
}
```