#include <bits/stdc++.h>
using namespace std;
int n, w;
int x[100010], v[100010];
int s1[100010], s2[100010];
int p[100010];
bool cmp1(int a, int b) {
  if (1LL * x[a] * x[b] > 0)
    return (-1LL * (v[a] - w) * x[b]) < (-1LL * (v[b] - w) * x[a]);
  return (-1LL * (v[a] - w) * x[b]) > (-1LL * (v[b] - w) * x[a]);
}
bool cmp2(int a, int b) {
  if (1LL * x[a] * x[b] > 0)
    return (-1LL * (v[a] + w) * x[b]) > (-1LL * (v[b] + w) * x[a]);
  return (-1LL * (v[a] + w) * x[b]) < (-1LL * (v[b] + w) * x[a]);
}
bool eq1(int a, int b) {
  return (-1LL * (v[a] - w) * x[b]) == (-1LL * (v[b] - w) * x[a]);
}
bool eq2(int a, int b) {
  return (-1LL * (v[a] + w) * x[b]) == (-1LL * (v[b] + w) * x[a]);
}
int sum[100010];
void add(int x, int v) {
  for (int i = x; i <= n; i += i & -i) sum[i] += v;
}
int query(int x) {
  int res = 0;
  for (int i = x; i; i -= i & -i) res += sum[i];
  return res;
}
long long ans;
int main() {
  scanf("%d%d", &n, &w);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", x + i, v + i);
    s1[i] = s2[i] = i;
  }
  sort(s1 + 1, s1 + n + 1, cmp1);
  sort(s2 + 1, s2 + n + 1, cmp2);
  int cur = 1;
  for (int i = 1; i <= n; i++) {
    if (i > 1 && !eq2(s2[i - 1], s2[i])) cur++;
    p[s2[i]] = cur;
  }
  for (int i = 1; i <= n; i++) {
    int j = i;
    while (j <= n && eq1(s1[i], s1[j])) j++;
    j--;
    for (int k = i; k <= j; k++) ans += query(p[s1[k]]);
    ans += 1LL * (j + 1 - i) * (j - i) / 2;
    for (int k = i; k <= j; k++) add(p[s1[k]], 1);
    i = j;
  }
  printf("%lld", ans);
  return 0;
}
