#include <bits/stdc++.h>
using namespace std;
const int INF = 2e9;
const int mod = 1e9 + 7;
const long long int LONGINF = 4e9;
const double eps = 1e-9;
int p[1010];
int fs(int v) {
  if (p[v] == v)
    return v;
  else
    return p[v] = fs(p[v]);
}
void us(int a, int b) {
  a = fs(a);
  b = fs(b);
  if (a == b) return;
  p[a] = b;
}
void solve(int n) {
  pair<int, int> g;
  vector<pair<int, int>> v;
  map<double, int> m;
  double d;
  int i, a, j, b;
  scanf("%d%d", &g.first, &g.second);
  for (i = 0; i < (n); i++) {
    scanf("%d%d", &a, &b);
    v.push_back(make_pair(a - g.first, b - g.second));
    p[i] = i;
  }
  int ans = 0;
  for (i = 0; i < (n); i++) {
    for (j = 0; j < (i); j++) {
      if (v[i].first * v[j].second == v[j].first * v[i].second) {
        us(i, j);
      }
    }
  }
  for (i = 0; i < (n); i++) {
    if (m[fs(i)] == 0) {
      ans++;
    }
    m[fs(i)] = 1;
  }
  printf("%d", ans);
}
int main() {
#pragma comment(linker, "/STACK:268435456")
  int n;
  long long int a;
  while (scanf("%d", &n) == 1) solve(n);
  return 0;
}
