#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int u, v; ll w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; ll gcd(ll a, ll b) { if (b == 0) return abs(a); else return gcd(b, a % b); } bool f(int x, int y, int d) { if (!x && !y) return true; if (!d) return false; return x % d == 0 && y % d == 0; } int main() { int P, Q; cin >> P >> Q; int d = gcd(P * 2, Q * 2); int a[] = {0, P, Q, P + Q}; int b[] = {0, Q, P, P + Q}; int N; cin >> N; int cnt = 0; while (N--) { int X, Y; cin >> X >> Y; bool ok = false; for (int i = 0; i < 4; i++) if (f(X + a[i], Y + b[i], d)) ok = true; if (ok) cnt++; } cout << cnt << endl; }