#include <bits/stdc++.h>
using namespace std;
bool essentiallyEqual(float a, float b) {
  return fabs(a - b) <= ((fabs(a) > fabs(b) ? fabs(b) : fabs(a)) * 1e-6);
}
struct TVector {
  long long x, y;
  TVector operator+(TVector q) const { return {x + q.x, y + q.y}; }
  TVector operator-(TVector q) const { return {x - q.x, y - q.y}; }
  TVector operator*(int t) const { return {x * t, y * t}; }
  long long operator*(TVector q) const { return {x * q.x + y * q.y}; }
  long long operator^(TVector q) const { return {x * q.y - q.x * y}; }
  long double operator~() const { return {hypot(x, y)}; }
  long double disPointLine(TVector p, TVector q) {
    TVector r = *this;
    if (((r - p) * (q - p) >= 0) && ((r - q) * (p - q) >= 0)) {
      return abs((q - p) ^ (r - p)) / ~(p - q);
    } else {
      return min(~(r - p), ~(r - q));
    }
  }
  bool onLine(TVector p, TVector q) {
    TVector r = *this;
    long double dis = r.disPointLine(p, q);
    return essentiallyEqual(dis, 0);
  }
  long double sqrdDist(TVector p) {
    return (x - p.x) * (x - p.x) + (y - p.y) * (y - p.y);
  }
  int orientation(TVector b, TVector c) {
    TVector a = *this;
    int val = (c - a) ^ (b - a);
    return val;
  }
  int orientationV2(TVector b, TVector c) {
    TVector a = *this;
    int val = (c - a) ^ (b - a);
    if (val == 0) return 0;
    return (val > 0) ? 1 : 2;
  }
  void imprimePonto() { printf("%lld %lld", x, y); }
};
vector<TVector> stormtroopers;
vector<int> isShot;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int n, x0, y0;
  cin >> n >> x0 >> y0;
  TVector gun;
  gun.x = x0;
  gun.y = y0;
  for (int i = 0; i < n; ++i) {
    int x, y;
    cin >> x >> y;
    stormtroopers.push_back({x, y});
    isShot.push_back(0);
  }
  int tiros = 0;
  for (int i = 0; i < n; ++i) {
    if (!isShot[i]) {
      tiros++;
      for (int j = i + 1; j < n; ++j) {
        if (!isShot[j]) {
          if (!gun.orientationV2(stormtroopers[i], stormtroopers[j]))
            isShot[j] = 1;
        }
      }
    }
  }
  cout << tiros << endl;
  return 0;
}
