#include <iostream> #include <bits/stdc++.h> #include <string> using namespace std; typedef struct { int x;int y;char type; }XY; vector<XY> xy; int theta0,theta1,theta2; bool AorB; bool topOrbelow(XY user) { if(theta0+theta1*user.x+theta2*user.y>0) return true; else return false; } int main() { int n,m; cin>>n>>m; XY temp; while(n--) { cin>>temp.x>>temp.y>>temp.type; xy.push_back(temp); } while(m--) { bool flag=true,flag0=false; cin>>theta0>>theta1>>theta2; for(int i=0;i<xy.size();i++) { if(i==0) { if(xy[i].type=='A') { if(topOrbelow(xy[i])) flag0=true; //上分为A类 } else { if(!topOrbelow(xy[i])) flag0=true; } } if(flag0) { if(!((topOrbelow(xy[i])&&xy[i].type=='A')||(!topOrbelow(xy[i])&&xy[i].type=='B'))) { flag=false; break; } } else { if(!((topOrbelow(xy[i])&&xy[i].type=='B')||(!topOrbelow(xy[i])&&xy[i].type=='A'))) { flag=false; break; } } } if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; } }