#include <bits/stdc++.h>
using namespace std;
struct Point {
  Point operator-(const Point& p) const { return Point{x - p.x, y - p.y}; }
  void normalize() {
    float norm = sqrt(x * x + y * y);
    x /= norm;
    y /= norm;
  }
  float x, y;
} h, u;
struct Line {
  float a, b, c;
};
int n;
float cross(Point v1, Point v2) { return v1.x * v2.y - v1.y * v2.x; }
int intersect(Point p1, Point p2, Line l) {
  Point vline, p_on_l;
  if (fabs(l.a) < 1e-6) {
    vline.x = 1;
    vline.y = 0;
    p_on_l.x = 0;
    p_on_l.y = -l.c / l.b;
  } else if (fabs(l.b) < 1e-6) {
    vline.x = 0;
    vline.y = 1;
    p_on_l.x = -l.c / l.a;
    p_on_l.y = 0;
  } else {
    vline.x = l.b;
    vline.y = -l.a;
    vline.normalize();
    p_on_l.x = 0;
    p_on_l.y = -l.c / l.b;
  }
  Point v1 = p1 - p_on_l, v2 = p2 - p_on_l;
  v1.normalize();
  v2.normalize();
  if (cross(v1, vline) * cross(v2, vline) < 0)
    return 1;
  else
    return 0;
}
int main() {
  scanf("%f%f%f%f", &h.x, &h.y, &u.x, &u.y);
  scanf("%d", &n);
  Line l;
  int cnt = 0;
  for (int i = 0; i < n; i++) {
    scanf("%f%f%f", &l.a, &l.b, &l.c);
    cnt += intersect(h, u, l);
  }
  printf("%d\n", cnt);
  return 0;
}
