import re, itertools, bisect n, m, q = map(int, input().split()) s = input() K = map(int, input().split()) s = re.fullmatch('(.+?)\1*', s).group(1) n, m = len(s), n//len(s)*m T = sorted([s[i:] for i in range(n)] + [s[i:]+s for i in range(n)]) J = [0] + list(itertools.accumulate(m-1 if len(t)>n else 1 for t in T)) R = [] for k in K: k -= 1 h = bisect.bisect(J, k)-1 R += [n*m+1 - len(T[h]) - n*(k-J[h])] print(*R)