#include <bits/stdc++.h>
using namespace std;
long long int w;
struct data {
  long long int x, v;
} a[100005];
bool operator<(const data &a, const data &b) {
  long long int t = (a.x * (b.v + w) - b.x * (a.v + w));
  if (t > 0)
    t = 1;
  else if (t == 0)
    t = 0;
  else
    t = -1;
  t *= (a.v + w) * (b.v + w);
  if (t != 0) return t < 0;
  t = (a.x * (b.v - w) - b.x * (a.v - w));
  if (t > 0)
    t = 1;
  else if (t == 0)
    t = 0;
  else
    t = -1;
  t *= (a.v - w) * (b.v - w);
  return t > 0;
}
long double b[100005];
int fen[100005];
int n;
void update(int p, int val) {
  for (int i = p; i <= n; i += i & -i) {
    fen[i] += val;
  }
}
int sum(int p) {
  int ans = 0;
  for (int i = p; i; i -= i & -i) {
    ans += fen[i];
  }
  return ans;
}
vector<pair<long double, long long int> > v;
long long int c[100005];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(NULL);
  cin >> n >> w;
  for (int i = 1; i <= n; i++) cin >> a[i].x >> a[i].v;
  sort(a + 1, a + n + 1);
  for (int i = 1; i <= n; i++) b[i] = a[i].x * 1.0 / (a[i].v - w);
  for (int i = 1; i <= n; i++)
    v.push_back(pair<long double, long long int>(b[i], -i));
  sort(v.begin(), v.end());
  for (int i = 0; i < v.size(); i++) c[-v[i].second] = i + 1;
  long long int res = 0;
  for (int i = n; i >= 1; i--) {
    res += sum(c[i]);
    update(c[i], 1);
  }
  cout << res << endl;
  return 0;
}
