n,m = input().split(" ")
#n=9; m=3
grp1 = []; grp2 = [];
nodes = []
#nodes = [['1','1','A'],['1','0','A'],['1','-1','A'],['2','2','B'],['2','3','B'],['0','1','A'],['3','1','B'],['1','3','B'],['2','0','A']]
for i in range(int(n)):
nodes.extend([input().split(" ")])
if nodes[i][2] == 'A':
grp1.append(i)#第几个行的点
else:
grp2.append(i)
par = []
for j in range(int(m)):
par.extend([input().split(" ")])
def judge(par):
theta0 = int(par[0]); theta1 = int(par[1]); theta2 = int(par[2])
group1 = []; group2 = []
for k in range(len(nodes)):
if(theta0+theta1*int(nodes[k][0])+theta2*int(nodes[k][1])>0):
group1.append(k)
elif(theta0+theta1*int(nodes[k][0])+theta2*int(nodes[k][1])<0):
group2.append(k)
if(grp1 == group1 or grp1 == group2):
print("YES")
else:
print("NO")
for tmp_par in par:
judge(tmp_par)