#include <bits/stdc++.h>
using namespace std;
const int M = 1e9 + 7;
const int inf = 1e9 + 7;
struct node {
  int id;
  double x, v;
  bool operator<(const node& a) const { return fabs(x * a.v) < fabs(a.x * v); }
} p[100005];
int c[100005], a[100005], b[100005];
void add(int x, int n) {
  while (x <= n) {
    c[x]++;
    x += (x & -x);
  }
}
int sum(int x) {
  int ans = 0;
  while (x) {
    ans += c[x];
    x -= (x & -x);
  }
  return ans;
}
int main() {
  int n;
  double w;
  scanf("%d%lf", &n, &w);
  w += 0.0000001;
  for (int i = 0; i < n; i++) {
    scanf("%lf%lf", &p[i].x, &p[i].v);
    p[i].id = i;
    p[i].v += w;
  }
  sort(p, p + n);
  for (int i = 0; i < n; i++) {
    a[i] = p[i].id;
    p[i].v -= 2 * w;
  }
  sort(p, p + n);
  for (int i = 0; i < n; i++) b[p[i].id] = i;
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    int x = b[a[i]];
    ans += i - sum(x);
    add(x + 1, n);
  }
  printf("%lld\n", ans);
  return 0;
}
