#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const int MAXN = 1e5 + 10;
long long t, k;
long long dp[MAXN];
long long add(long long a, long long b) { return (a % MOD + b % MOD) % MOD; }
void solve() {
  for (int ii = 0; ii < k; ii++) {
    dp[ii] = 1;
  }
  for (int ii = k; ii < MAXN; ii++) {
    dp[ii] = add(dp[ii - 1], dp[ii - k]);
  }
  for (int ii = 1; ii < MAXN; ii++) {
    dp[ii] = add(dp[ii], dp[ii - 1]);
  }
}
int main() {
  scanf("%I64d%I64d", &t, &k);
  solve();
  while (t--) {
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%I64d\n", (dp[b] - dp[a - 1] + MOD) % MOD);
  }
}
