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:
//package codeforce.educational.r107;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author pribic (Priyank Doshi)
 * @since 12/04/21
 */
public class D {

  public static void main(String[] args) {
    try (Scanner sc = new Scanner(System.in)) {
      int T = 1;//sc.nextInt();
      for (int tt = 1; tt <= T; tt++) {
        int n = sc.nextInt();
        int k = sc.nextInt();
        String[] pattern = new String[k];
        for (int i = 0; i < k; i++) {
          char startingChar = (char) ('a' + i);
          StringBuilder sb = new StringBuilder();
          sb.append(startingChar);
          for (int j = 1; j < k - i; j++) {
            sb.append(startingChar).append((char) (startingChar + j));
          }
          pattern[i] = sb.toString();
        }
        //System.out.println("Arrays.toString(pattern) = " + Arrays.toString(pattern));
        StringBuilder ans = new StringBuilder();
        int idx = 0;
        while (n > 0) {
          if(n >= pattern[idx].length()) {
            ans.append(pattern[idx]);
            n -= pattern[idx].length();
            idx = (idx + 1) % k;
          } else {
            ans.append(pattern[idx], 0, n);
            idx++;
            n = 0;
          }
        }
        System.out.println(ans);
      }
    }
  }
}