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 JAVA):

Solution:
import java.util.Scanner;

public class minCost {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int n, k;

        String[] dataIn = scanner.nextLine().split(" ");
        n = Integer.parseInt(dataIn[0]);
        int l = n;
        k = Integer.parseInt(dataIn[1]);

        char[] chars = new char[k];

        for (int i = 0; i < k; i++) {
            chars[i] = (char) ('a' + i);
            //System.out.println(chars[i]);
        }

        int first = 0;
        int second = 0;

        String ans = "";
        while (n > 0) {
            if (first == k && second == k-1) {
                break;
            }
            if (first == k) {
                second++;
                first = second;
            }
            if (first == second) {
                if (first == k) {
                    ans += chars[second];
                    n--;
                } else {
                    if (ans.length() == 0 ) {
                        ans += chars[first];
                        n--;
                    } else if (!(ans.charAt(ans.length()-1) == chars[first])) {
                        ans += chars[first];
                        n--;
                    }
                    ans += chars[first];
                    first++;
                    n--;
                }
            } else {
                if (!(ans.charAt(ans.length()-1) == chars[first])) {
                    ans += chars[first];
                    n--;
                }
                if (!(first == k-1)) {
                    ans += chars[second];
                    n--;
                }
                first++;
            }

        }
        if (ans.length() == l) {
            System.out.println(ans);
        } else {
            if (n > 0) {
                String rep = ans;
                System.out.print(ans);
                while (n > 0) {
                    if (n >= rep.length()) {
                        System.out.print(rep);
                        n -= rep.length();
                    } else {
                        System.out.print(rep.substring(0, n));
                        break;
                    }
                }
                System.out.println();
            } else {
                System.out.println(ans.substring(0, l));
            }
        }

    }
}