You are given three positive integers $n$, $a$ and $b$. You have to construct a string $s$ of length $n$ consisting of lowercase Latin letters such that each substring of length $a$ has exactly $b$ distinct letters. It is guaranteed that the answer exists.

You have to answer $t$ independent test cases.

Recall that the substring $s[l \dots r]$ is the string $s_l, s_{l+1}, \dots, s_{r}$ and its length is $r - l + 1$. In this problem you are only interested in substrings of length $a$.


-----Input-----

The first line of the input contains one integer $t$ ($1 \le t \le 2000$) — the number of test cases. Then $t$ test cases follow.

The only line of a test case contains three space-separated integers $n$, $a$ and $b$ ($1 \le a \le n \le 2000, 1 \le b \le \min(26, a)$), where $n$ is the length of the required string, $a$ is the length of a substring and $b$ is the required number of distinct letters in each substring of length $a$.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2000$ ($\sum n \le 2000$).


-----Output-----

For each test case, print the answer — such a string $s$ of length $n$ consisting of lowercase Latin letters that each substring of length $a$ has exactly $b$ distinct letters. If there are multiple valid answers, print any of them. It is guaranteed that the answer exists.


-----Example-----
Input
4
7 5 3
6 1 1
6 6 1
5 2 2

Output
tleelte
qwerty
vvvvvv
abcde



-----Note-----

In the first test case of the example, consider all the substrings of length $5$:  "tleel": it contains $3$ distinct (unique) letters,  "leelt": it contains $3$ distinct (unique) letters,  "eelte": it contains $3$ distinct (unique) letters.

Difficulty: introductory

Starter code:

Solutions:
TC = int(input())
while TC > 0:
    n, a, b = list(map(int, input().split()))
    ans = ""
    for i in range(b):
        ans += chr(ord('a') + i)
    ans = ans * n
    print(ans[:n])

    TC -= 1



#!usr/bin/env python3
from collections import defaultdict, deque
from heapq import heappush, heappop
from itertools import permutations, accumulate
import sys
import math
import bisect
def LI(): return [int(x) for x in sys.stdin.readline().split()]
def I(): return int(sys.stdin.readline())
def LS():return [list(x) for x in sys.stdin.readline().split()]
def S():
    res = list(sys.stdin.readline())
    if res[-1] == "\n":
        return res[:-1]
    return res
def IR(n):
    return [I() for i in range(n)]
def LIR(n):
    return [LI() for i in range(n)]
def SR(n):
    return [S() for i in range(n)]
def LSR(n):
    return [LS() for i in range(n)]

sys.setrecursionlimit(1000000)
mod = 1000000007

def solve():
    t = I()
    for _ in range(t):
        n,a,b = LI()
        for i in range(n):
            print(chr(i%b+ord("a")),end ="")
        print()
    return

#Solve
def __starting_point():
    solve()

__starting_point()

t=int(input())
for i in range(t):
    n, a, b =map(int, input().split())
    r=''
    for j in range(n):
        r+=chr(97+j%b)
    print(r)

t = int(input())
alph = "abcdefghijklmnopqrstuvwxyz"
for _ in range(t):
    n, a, b = map(int, input().split())
    ans = [alph[i] for i in range(b)]
    while len(ans) < n:
        ans.append(ans[len(ans) - b])
    print("".join(ans))

for _ in range (int(input())):
    n, a, b = list(map(int, input().split()))
    ans = ''
    x = []
    for i in range(97, 97 + b):
        x.append(chr(i))
    for i in range(n):
        ans += x[i % b]
    print(ans)

from string import ascii_lowercase as alps

for _ in range(int(input())):
    n, a, b = map(int, input().split())

    s = ''

    for i in range(n):
        s += alps[i % b]

    print(s)

word = 'abcdefghijklmnopqrstuvwxyz'
for _ in range(int(input())):
    n,a,b = list(map(int,input().split()))
    ans = ''
    sub = word[:b]
    ans+=sub
    for i in range(b,n):
        ans+=(word[i%b])
    print(ans)

for _ in range(int(input())):
    n, a, b = list(map(int, input().split()))
    i = 0
    ans = ""
    while len(ans) < n:
        ans += chr(ord('a')+i)
        i = (i+1) % b
    print(ans)


from string import ascii_lowercase
chars = ascii_lowercase
for _ in range(int(input())):
    n, a, b = list(map(int, input().split()))
    print("".join([chars[i%b] for i in range(n)]))


import math,sys
from sys import stdin, stdout
from collections import Counter, defaultdict, deque
input = stdin.readline
I = lambda:int(input())
li = lambda:list(map(int,input().split()))

def case():
	n,a,b=li()
	s="abcdefghijklmnopqrstuvwxyz"
	ans=[]
	j=0
	for i in range(n):
		ans.append(s[j])
		j+=1
		if(j==b):
			j=0
	print("".join(map(str,ans)))

	

for _ in range(int(input())):
	case()

t = int(input(''))
c = []
for i in range(97,123,1):
    c.append(chr(i))
for _ in range(t):
    n,a,b = list(map(int,input('').split(' ')))
    s = ''
    for i in range(n):
        s = s+c[i%b]
    print(s)

for i in range(int(input())):
    n, a, b = list(map(int, input().split()))
    k = 0
    f = ''
    for j in range(n):
        f += chr(k + ord('a'))
        k = k + 1
        k = k % b
    print(f)