#include <bits/stdc++.h>
using namespace std;
const long long BIG = 1e18;
const long long ad = 1e16;
const int maxn = 100500;
long long x[maxn];
long long v[maxn];
long long w;
int p[maxn];
int q[maxn];
map<long long, int> poss;
map<long long, int> negs;
void addp(long long i) {
  for (; i < BIG; i |= i + 1) poss[i]++;
}
void addn(long long i) {
  for (; i < BIG; i |= i + 1) negs[i]++;
}
int sump(long long i) {
  int ans = 0;
  for (; i >= 0; i = (i & (i + 1)) - 1) ans += poss[i];
  return ans;
}
int sumn(long long i) {
  int ans = 0;
  for (; i >= 0; i = (i & (i + 1)) - 1) ans += negs[i];
  return ans;
}
long long fun(long long x, long long y) {
  long long m = 1;
  if (x < 0) {
    m *= -1;
    x *= -1;
  }
  if (y < 0) {
    m *= -1;
    y *= -1;
  }
  return ((x * 1000000000) / y) * m;
}
bool cmp(int i, int j) {
  long long cnt = x[j] * (v[i] + w) - x[i] * (v[j] + w);
  long long cnt1 = x[j] * (v[i] - w) - x[i] * (v[j] - w);
  if (x[i] * x[j] > 0) {
    return (cnt < 0) || (cnt == 0 && cnt1 > 0);
  }
  return (cnt > 0) || (cnt == 0 && cnt1 < 0);
}
bool cmp1(int i, int j) {
  long long cnt1 = x[j] * (v[i] - w) - x[i] * (v[j] - w);
  if (x[i] * x[j] > 0) {
    return cnt1 < 0;
  }
  return cnt1 > 0;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  int n;
  cin >> n >> w;
  for (int i = 0; i < n; i++) {
    p[i] = i;
    q[i] = i;
    cin >> x[i] >> v[i];
  }
  sort(p, p + n, cmp);
  sort(q, q + n, cmp1);
  long long ans = 0;
  int ct = 0;
  for (int i = 0; i < n; i++) {
    int j = p[i];
    int y = lower_bound(q, q + n, j, cmp1) - q;
    ans += sump(BIG - 1) - sump(y - 1 + ad);
    addp(y + ad);
  }
  cout << ans;
  return 0;
}
