#!/bin/python import sys from collections import defaultdict def minimumZooNumbers(m, n, t, s, d): # Return a list of length n consisting of the answers animals = defaultdict(list) for i in xrange(n): animals[t[i]].append((s[i],d[i])) elephant = [0]*m dog = [0]*m cat = [0]*m mouse = [0]*m print animals for animalType in animals.keys(): if animalType == 'E': for elem in animals[animalType]: for x in xrange(elem[0],elem[1]+1): elephant[x-1]+=1 elif animalType == 'D': for elem in animals[animalType]: for x in xrange(elem[0],elem[1]+1): dog[x-1]+=1 elif animalType == 'C': for elem in animals[animalType]: for x in xrange(elem[0],elem[1]+1): cat[x-1]+=1 elif animalType == 'M': for elem in animals[animalType]: for x in xrange(elem[0],elem[1]+1): mouse[x-1]+=1 ec = [0]*m for i in xrange(m): ec[i] = elephant[i]+cat[i] dm = [0]*m for i in xrange(m): dm[i] = dog[i]+mouse[i] ec.append(0) dm.append(0) result = [-1]*(n+1) x = 0 result[0] = 0 animalNoMaxTillX = 0 animalNo1 = animalNo2 = animalNoMaxTillX = 0 for x in xrange(1,n+1): animalNo1 = animalNo2 = animalNoMaxTillX print "==================" print x changed = False print (x-1,result[x-1],animalNo1, animalNo2) if animalNoMaxTillX >= x: result[x] = result[x-1] continue #if animalNo2 >= x: # result[x] = result[x-1] # continue for i in xrange(result[x-1]+1,m+1): if ec[i] < ec[i-1]: print "ec", print (i,ec[i-1],ec[i]) animalNo1 += (ec[i-1]-ec[i]) changed = True if dm[i] < dm[i-1]: print "dm", print (i,dm[i-1],dm[i]) animalNo2 += (dm[i-1]-dm[i]) changed = True if changed: animalNoMaxTillX = max(animalNo1, animalNo2) if animalNoMaxTillX >= x: result[x] = i break if not changed: animalNo1 += ec[m-1] animalNo2 += dm[m-1] animalNoMaxTillX = max(animalNo1, animalNo2) if animalNoMaxTillX >= x: result[x] = m break #if animalNo2 >= x: # result[x] = m # break print (x-1,result[x-1],animalNo1, animalNo2) print ec print dm return result[1:] 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) print " ".join(map(str, result))