# 202006-1
n,m=map(int,input().split())
points=[] #n个点
pars=[] #m组参数
for i in range(n):
x,y,label=input().split()
points.append([int(x),int(y),label])
for i in range(m):
pars.append(list(map(int,input().split())))
for p in pars:
flag_A=0
flag_B=0
flag_yes=0
for d in points:
pre=p[0]+p[1]*d[0]+p[2]*d[1]
if d[2]=='A':
if flag_A==0: #确认首个A是>0还是<0,只执行一次
if pre>0:
flag_A+=1
else:
flag_A-=1
if pre*flag_A<0:
print('No')
flag_yes+=1
break
elif d[2]=='B':
if flag_B==0: #首次赋值
if pre>0:
flag_B+=1
else:
flag_B-=1
if pre*flag_B<0:
print('No')
flag_yes+=1
break
if flag_yes==0:
print('Yes')
我觉得我这个falg_A和flag_B用的很妙呢~[dog]