#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
int n, w, m;
struct ST {
  int x, y;
} A[100001];
struct ft {
  int p, q;
} C[100001], BB[100001];
struct DT {
  ft x, y;
} B[100001];
int com(ft a, ft b) {
  long long int aa = (long long int)a.p * b.q - (long long int)a.q * b.p;
  if (aa > (long long int)0)
    return 1;
  else if (aa == (long long int)0) {
    return 0;
  } else {
    return -1;
  }
}
bool cmp2(ft &r1, ft &r2) { return com(r1, r2) < 0; }
bool cmp(DT &r1, DT &r2) {
  return com(r1.x, r2.x) != 0 ? com(r1.x, r2.x) < 0 : com(r1.y, r2.y) > 0;
}
int fnd(ft a) {
  int s = 1, e = m, mm;
  mm = (s + e) / 2;
  while (com(BB[mm], a) != 0) {
    if (com(BB[mm], a) < 0) {
      s = mm + 1;
    } else {
      e = mm - 1;
    }
    mm = (s + e) / 2;
  }
  return mm;
}
int abbs(int x) { return x < 0 ? -x : x; }
long long int sg[100001 * 8], sgm;
int main() {
  int i, j;
  scanf("%d%d", &n, &w);
  for (i = 1; i <= n; i++) {
    scanf("%d%d", &A[i].x, &A[i].y);
    B[i].x.p = abbs(A[i].x), B[i].x.q = abbs(A[i].y + w);
    B[i].y.p = abbs(A[i].x), B[i].y.q = abbs(A[i].y - w);
    C[i].p = abbs(A[i].x), C[i].q = abbs(A[i].y - w);
  }
  sort(B + 1, B + n + 1, cmp);
  sort(C + 1, C + n + 1, cmp2);
  BB[1].p = C[1].p, BB[1].q = C[1].q, m = 1;
  for (i = 2; i <= n; i++) {
    if (com(C[i - 1], C[i]) != 0) {
      ++m;
      BB[m].p = C[i].p, BB[m].q = C[i].q;
    }
  }
  long long int ans = 0;
  for (sgm = 1; sgm < m; sgm *= 2)
    ;
  for (i = n; i >= 1; i--) {
    int loc = fnd(B[i].y);
    long long int sm = 0;
    int ss = sgm, ee = loc + sgm - 1;
    while (ss <= ee) {
      if (ss % 2 == 1) {
        sm += sg[ss];
        ss++;
      }
      if (ee % 2 == 0) {
        sm += sg[ee];
        ee--;
      }
      ss /= 2;
      ee /= 2;
    }
    ans += sm;
    for (j = loc + sgm - 1; j >= 1; j /= 2) {
      sg[j]++;
    }
  }
  printf("%lld", ans);
}
