For this Question: Given N and K, find the lexicographically smallest string of length N using only the first K lowercase letters of the alphabet such that each letter is used at least once and no two adjacent characters are equal. 

If such a string doesn't exist, print -1.The first line of input contains a single integer, T (1 <= T <= 100).

Then T lines follow, each containing two space-separated integers, N (1 <= N <= 10<sup>5</sup>) and K (1 <= K <= 26).

It is guaranteed that sum of N over all test cases does not exceed 10<sup>6</sup>For each test case, output its answer in a new line.Sample Input:
2
2 3
3 2

Sample Output:
-1
aba, I have written this Solution Code: t=int(input())
for tt in range(t):
	n,k=map(int,input().split())
	if (k==1 and n>1) or (k>n):
		print(-1)
		continue
	s="abcdefghijklmnopqrstuvwxyz"
	ss="ab"
	if (n-k)%2==0:
		a=ss*((n-k)//2)+s[:k]
	else:
		a=ss*((n-k)//2)+s[:2]+"a"+s[2:k]
	print(a), In this Programming Language: Python, Now tell me if this Code is compilable or not?