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.*;
import java.util.*;
import java.math.*;
import java.text.*;

public class Main {
	
	int n, k;
	
	void run(Input cin, PrintWriter out) throws Exception {
		n = cin.nextInt(); k = cin.nextInt();
		if (k > n || n > 1 && k == 1) {
			System.out.println(-1);
			return;
		}
		if (n == 1) {
			System.out.println('a');
		} else if (k == 2) {
			for (int i = 0; i < n; ++i) {
				if (i % 2 == 0) out.print('a');
				else out.print('b');
			}
			out.println();
		} else {
			int pre = n - k + 2, i = 0;
			for (; i < pre; ++i) {
				if (i % 2 == 0) out.print('a');
				else out.print('b');
			}
			for (int j = 2; i < n; ++i, ++j) 
				out.print((char) (j + 'a'));
			out.println();
		}
	}
	
	public static void main(String[] args) throws Exception {
		 PrintWriter out = new PrintWriter(System.out);
	     new Main().run(new Input(new BufferedReader(new InputStreamReader(System.in))), out);
	     out.close();	     	     
	}
	
	static class Input {
	    BufferedReader in;
	    StringTokenizer st;

	    public Input(BufferedReader in) {
	        this.in = in;
	        eat("");
	    }

	    public Input(String s) {
	        this.in = new BufferedReader(new StringReader(s));
	    }

	    public void eat(String str) {
	        st = new StringTokenizer(str);
	    }

	    public String next() throws IOException {
	        while (!st.hasMoreTokens()) {
	            String line = in.readLine();
	            if (line == null) {
	                return null;
	            }
	            eat(line);
	        }
	        return st.nextToken();
	    }

	    public int nextInt() throws IOException {
	        return Integer.parseInt(next());
	    }

	    public long nextLong() throws IOException {
	        return Long.parseLong(next());
	    }

	    public double nextDouble() throws IOException {
	        return Double.parseDouble(next());
	    }
	}
}