#(#(#((##((()))(((#)(#()#(((()()(()#(##(((()(((()))#(((((()(((((((()#((#((()(#(((()(()##(()(((()((#(
 (#((((()
 (#((
 ((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((##
 (())((((#)
 (#(
 (#))(#(#)((((#(##((#(#((((#(##((((((#((()(()(())((()#((((#((()((((#(((((#(##)(##()((((()())(((((#(((
 ##((((((()
 #((#
 #))))
 (((((#(#(#(#()
 ((#(()#(##
 (((((((((((((((((((###################
 )((##((###
 (((()#(#)(
 ((#)(
 )(((())#
 ()((#((#(#()
 ((#(
 ()#(#())()()#)(#)()##)#((()#)((#)()#())((#((((((((#)()()(()()(((((#)#(#((((#((##()(##(((#(()(#((#))#

-1
 -1
 -1
 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
 3
 -1
 -1
 -1
 -1
 -1
 1
1
1
5
 1
1
1
1
 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
 -1
 -1
 -1
 -1
 1
1
3
 -1
 -1

#include <bits/stdc++.h>
using namespace std;
class Point {
 public:
  long long x, y;
  Point(long long nx = 0, long long ny = 0) {
    x = nx;
    y = ny;
  }
} A, B;
class Line {
 public:
  long long a, b, c;
} T[305];
bool solve(Line l) {
  long long resA = l.a * A.x + l.b * A.y + l.c;
  long long resB = l.a * B.x + l.b * B.y + l.c;
  if (resA > 0 && resB < 0) return 1;
  if (resA < 0 && resB > 0) return 1;
  return 0;
}
int n;
int main() {
  scanf("%lld%lld%lld%lld%d", &A.x, &A.y, &B.x, &B.y, &n);
  for (int i = 0; i < n; i++) scanf("%lld%lld%lld", &T[i].a, &T[i].b, &T[i].c);
  int res = 0;
  for (int i = 0; i < n; i++)
    if (solve(T[i])) res++;
  printf("%d\n", res);
  return 0;
}
