#include <bits/stdc++.h>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const long long MAXN = 1e5 + 2, MOD = 1e9 + 7;
long long dp[MAXN][2], sum[MAXN];
long long add(long long a, long long b) { return ((a + b) % MOD + MOD) % MOD; }
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long t, k;
  cin >> t >> k;
  dp[0][0] = dp[k][1] = 1;
  for (long long i = 1; i < MAXN; i++) {
    dp[i][0] = add(dp[i][0], add(dp[i - 1][0], dp[i - 1][1]));
    if (i - k > 0) dp[i][1] = add(dp[i][1], add(dp[i - k][0], dp[i - k][1]));
  }
  for (long long i = 1; i < MAXN; i++) {
    sum[i] = add(dp[i][0], dp[i][1]);
    sum[i] = add(sum[i], sum[i - 1]);
  }
  for (long long i = 0; i < t; i++) {
    long long a, b;
    cin >> b >> a;
    cout << add(sum[a], -sum[b - 1]) << "\n";
  }
  return 0;
}
