#include <bits/stdc++.h>
using namespace std;
struct Num {
  double l, r, cnt;
} num[100005];
int main() {
  long long i, n, p;
  scanf("%lld%lld", &n, &p);
  for (i = 0; i < n; i++) {
    scanf("%lf%lf", &num[i].l, &num[i].r);
    num[i].cnt = floor(num[i].r / p) - floor((num[i].l - 1) / p);
  }
  double ans = 0;
  for (i = 0; i < n - 1; i++)
    ans += (num[i].cnt * (num[i + 1].r - num[i + 1].l + 1) +
            num[i + 1].cnt * (num[i].r - num[i].l + 1 - num[i].cnt)) /
           (num[i].r - num[i].l + 1) / (num[i + 1].r - num[i + 1].l + 1);
  ans += (num[n - 1].cnt * (num[0].r - num[0].l + 1) +
          num[0].cnt * (num[n - 1].r - num[n - 1].l + 1 - num[n - 1].cnt)) /
         (num[n - 1].r - num[n - 1].l + 1) / (num[0].r - num[0].l + 1);
  printf("%lf\n", ans * 2000);
}
