#!/bin/python import sys import itertools def minimumZooNumbers(m, n, t, s, d): # Return a list of length n consisting of the answers matrix=[] minnum=[] for a in xrange(0,len(t)): templist=[d[a],s[a],t[a]] matrix.append(templist) matrix.sort() for b in xrange(1,n+1): numOfAn=b vehicle=[] currentTransport=0 combin=itertools.combinations(matrix,numOfAn) while currentTransport!=numOfAn: flag1=0 try: check=combin.next() for i in xrange(0,len(check)): flag=0 animal=check[i][2] for j in xrange(i+1,len(check)): if animal=="D" and check[j][2]=="E": if check[i][0]>check[j][1]: flag=1 break elif animal=="C" and check[j][2]=="D": if check[i][0]>check[j][1]: flag=1 break elif animal=="M" and check[j][2]=="C": if check[i][0]>check[j][1]: flag=1 break elif animal=="E" and check[j][2]=="M": if check[i][0]>check[j][1]: flag=1 break if flag==1: flag1=1 break if flag1==0: minnum.append(check[-1][0]) currentTransport+=numOfAn except StopIteration: minnum.append(-1) break print " ".join(str(x) for x in minnum) if __name__ == "__main__": cases = int(raw_input().strip()) for a0 in xrange(cases): m, n = raw_input().strip().split(' ') m, n = [int(m), int(n)] t = raw_input().strip().split(' ') s = map(int, raw_input().strip().split(' ')) d = map(int, raw_input().strip().split(' ')) result = minimumZooNumbers(m, n, t, s, d)