Little penguin Polo adores strings. But most of all he adores strings of length n.

One day he wanted to find a string that meets the following conditions:

  1. The string consists of n lowercase English letters (that is, the string's length equals n), exactly k of these letters are distinct. 
  2. No two neighbouring letters of a string coincide; that is, if we represent a string as s = s1s2... sn, then the following inequality holds, si ≠ si + 1(1 ≤ i < n). 
  3. Among all strings that meet points 1 and 2, the required string is lexicographically smallest. 



Help him find such string or state that such string doesn't exist.

String x = x1x2... xp is lexicographically less than string y = y1y2... yq, if either p < q and x1 = y1, x2 = y2, ... , xp = yp, or there is such number r (r < p, r < q), that x1 = y1, x2 = y2, ... , xr = yr and xr + 1 < yr + 1. The characters of the strings are compared by their ASCII codes.

Input

A single line contains two positive integers n and k (1 ≤ n ≤ 106, 1 ≤ k ≤ 26) — the string's length and the number of distinct letters.

Output

In a single line print the required string. If there isn't such string, print "-1" (without the quotes).

Examples

Input

7 4


Output

ababacd


Input

4 7


Output

-1
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;

public class ahmed {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

		// int n = in.nextInt();
		// int m = in.nextInt();
		// int d = in.nextInt();
		// Integer a[] = new Integer[m * n];
		// boolean r = true;
		// for (int i = 0; i < m * n; i++) {
		// a[i] = in.nextInt();
		// if (a[i] % d != 0) {
		// r = false;
		// }
		// }
		// if (r == false) {
		// System.out.println(-1);
		// } else {
		// Arrays.sort(a);
		// int ans = a[(m * n) / 2];
		// int count = 0;
		// for (int i = 0; i < m * n; i++) {
		// if (i != (m * n) / 2) {
		// int k = Math.abs(ans - a[i]);
		// count += (k / d);
		//
		// }
		// }
		// System.out.println(count);
		// }
		int x = in.nextInt();
		int y = in.nextInt();
		if (y > x||(y==1&&x!=1)) {
			System.out.println(-1);
		} else if (y == x) {
			for (int i = 0; i < x; i++) {
				out.print((char) (97 + i));
			}
			out.println();
		} else {

			String res = "";
			// System.out.println(res);
			char k = 'a';
			boolean r = false;
			for (int i = 0; i < x - (y - 2); i++) {
				out.print(k);
				if (r == false) {
					k = 'b';
					r = true;
				} else {
					k = 'a';
					r = false;
				}
			}

			for (int i = 0; i < y - 2; i++) {
				out.print((char) (99 + i));
			}
			out.println(res);
		}

		out.close();
	}

}