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>
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
// #define int long long

void print(vector<int> arr){
	for(int i=0; i<arr.size(); i++)
		cout << arr[i] << " ";
	cout << endl;
}

int foo(vector<int> x, vector<int> y, int x1 ,int x2){
	int ans = 0;
	for(int i=0; i<x.size(); i++)
		ans += abs(x[i] - x1);
	for(int i=0; i<x.size(); i++)
		ans += abs(y[i] - x2);
	return ans;
}

int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
//--------------------------------------START----------------------------------------//
  	int n,k; cin >> n >> k;
  	string s = "";
  	vector<int> pos(k);
  	for(int i=0; i<k; i++)
  		pos[i] = i;
  	int i = 0, cnt = 0;
  	int limit = k*k;

  	while(cnt <= limit-1){
  		s += ('a' + i);
  		int next = pos[i];
  		pos[i] = (pos[i] + 1) % k;
  		i = next;
  		cnt++;
  	}
  	// cout << "s " << s << endl;
  	string ans = "";
  	while(n){
  		if(n >= s.size()){
  			ans += s;
  			n -= s.size();
  		}
  		else{
  			ans += s.substr(0, n);
  			n = 0;
  		}
  	}
  	cout << ans << endl;
// ------------------------------------  END -------------------------------------//
}