#include <fstream>
#include <algorithm>
#define P 123457
#define Q 370003
using namespace std;
ifstream fin("regiuni.in");
ofstream fout("regiuni.out");
int n,m,t[1001],v[1001];
struct dreapta
{
int a,b,c;
};
dreapta d[1001];
inline int Semn(dreapta dr,int x, int y)
{
return dr.a *x + dr.b*y + dr.c;
}
void Solve()
{
int i,x,y,cod,cod2,j,gasit;
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>d[i].a>>d[i].b>>d[i].c;
for(i=1;i<=m;i++)
{
fin>>x>>y;
cod = cod2 = 0;
for(j=1;j<=n;j++)
{
if(Semn(d[j],x,y)<0) {cod = cod*10+1;cod2 = cod2*10+1;}
else {cod = cod*10+2;cod2 = cod2*10+2;}
cod = cod%P;
cod2 = cod2%Q;
}
t[i] = cod;
v[i] = cod2;
}
cod = 1;
for(i=2;i<=m;i++)
{
gasit = 0;
for(j=1;j<i && !gasit;j++)
if(t[i]==t[j] && v[i]==v[j]) gasit = 1;
if(gasit==0) cod++;
}
fout<<cod<<"\n";
}
int main()
{
Solve();
fout.close();
return 0;
}