#include <bits/stdc++.h>
using namespace std;
const long long maxn = 100010;
long long n, a[maxn], b[maxn], c[maxn], ans;
double w;
struct node {
  double x, v;
  long long id;
} e[maxn];
bool cmp(node a, node b) { return fabs(a.x * b.v) < fabs(b.x * a.v); }
void update(long long x) {
  while (x <= n) {
    c[x]++;
    x += x & (-x);
  }
}
long long query(long long x) {
  long long res = 0;
  while (x) {
    res += c[x];
    x -= x & (-x);
  }
  return res;
}
int main() {
  scanf("%lld%lf", &n, &w);
  w += 1e-6;
  for (long long i = 1; i <= n; i++) {
    scanf("%lf%lf", &e[i].x, &e[i].v);
    e[i].v -= w;
    e[i].id = i;
  }
  sort(e + 1, e + 1 + n, cmp);
  for (long long i = 1; i <= n; i++) a[i] = e[i].id;
  for (long long i = 1; i <= n; i++) e[i].v += 2 * w;
  sort(e + 1, e + 1 + n, cmp);
  for (long long i = 1; i <= n; i++) b[e[i].id] = i;
  for (long long i = 1; i <= n; i++) {
    ans += i - 1 - query(b[a[i]]);
    update(b[a[i]]);
  }
  printf("%lld\n", ans);
  return 0;
}
