#include <bits/stdc++.h>
using namespace std;
long a[100005], v[100005];
long t1[100005], t2[100005], tc[100005], t[100005];
pair<pair<long, long>, long> q[100005];
long c[100005];
long long mov(long a[], long na, long n) {
  long i = 0, j = na, tot = 0;
  long long s = 0;
  while (tot < n) {
    if (j < n && (i == na || a[i] > a[j])) {
      c[tot] = a[j];
      ++tot;
      ++j;
      s += na - i;
    } else {
      c[tot] = a[i];
      ++tot;
      ++i;
    }
  }
  for (long k = 0; k < n; ++k) a[k] = c[k];
  return s;
}
long long SORT(long a[], long l, long r) {
  if (l == r) return 0;
  long mid = (l + r) >> 1;
  long long s = SORT(a, l, mid) + SORT(a, mid + 1, r);
  s += mov(a + l, mid - l + 1, r - l + 1);
  return s;
}
long n, w;
bool cmp1(pair<pair<long, long>, long> c, pair<pair<long, long>, long> b) {
  if (c.first.first * (long long)b.first.second <
      c.first.second * (long long)b.first.first)
    return 1;
  else if (c.first.first * (long long)b.first.second ==
               c.first.second * (long long)b.first.first &&
           a[c.second] / (double)(v[c.second] - w - 0.001) <
               a[b.second] / (double)(v[b.second] - w - 0.001))
    return 1;
  return 0;
}
bool cmp2(pair<pair<long, long>, long> c, pair<pair<long, long>, long> b) {
  if (c.first.first * (long long)b.first.second <
      c.first.second * (long long)b.first.first)
    return 1;
  else if (c.first.first * (long long)b.first.second ==
               c.first.second * (long long)b.first.first &&
           a[c.second] / (double)(v[c.second] + w + 0.001) <
               a[b.second] / (double)(v[b.second] + w + 0.001))
    return 1;
  return 0;
}
int main() {
  cin >> n >> w;
  for (long i = 0; i < n; ++i) scanf("%ld%ld", &a[i], &v[i]);
  for (long i = 0; i < n; ++i) {
    q[i].first.first = ((a[i]) > 0 ? (a[i]) : (-(a[i])));
    q[i].first.second = ((v[i] + w) > 0 ? (v[i] + w) : (-(v[i] + w)));
    q[i].second = i;
  }
  sort(q, q + n, cmp1);
  for (long i = 0; i < n; ++i) t1[i] = q[i].second;
  for (long i = 0; i < n; ++i) {
    q[i].first.first = ((a[i]) > 0 ? (a[i]) : (-(a[i])));
    q[i].first.second = ((v[i] - w) > 0 ? (v[i] - w) : (-(v[i] - w)));
    q[i].second = i;
  }
  sort(q, q + n, cmp2);
  for (long i = 0; i < n; ++i) t2[i] = q[i].second;
  for (long i = 0; i < n; ++i) tc[t2[i]] = i;
  for (long i = 0; i < n; ++i) t[i] = tc[t1[i]];
  long long s = SORT(t, 0, n - 1);
  cout << s << endl;
  return 0;
}
