def find(i, T, intervals): if i == -1: # end case: whole string generated return True # across all intervals for idx, (S1, S2, R1, R2) in enumerate(intervals): # for all ranks for Ri in range(R1,R2+1): # try all letters for S[i] in range(S1,S2+1): Ti = S[i] + T # cumulative sum if W[i] == (Ri + Ti) % 10: # recurse if find(i-1, Ti, intervals[:idx] + [(S1, S[i]-1, R1, Ri-1), (S[i]+1, S2, Ri+1, R2)] + intervals[idx+1:]): return True z, n = map(int, raw_input().strip().split()) S = [None]*n for cas in xrange(z): W = map(int, raw_input().strip()) assert find(n-1, 0, [(0, 25, 0, n-1)]) print ''.join(chr(s + ord('a')) for s in S)