#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9+7;
int f[360][260], g[360][260],gg[360];
int q[1010],x[1010];
int n, t;
int main(){
    freopen("kebab.in", "r", stdin);
    freopen("kebab.out", "w", stdout);
    scanf("%d%d", &n, &t);
    for(int i = 1; i <= n; i++)  scanf("%d%d", &q[i], &x[i]);
    int last = 110;
    for(int i = 0; i <= last; i++) g[i][0] = 1;
    for(int i = 1; i <= n; i++){
        for(int j = last + 1; j <= last + q[i]; j++){
            g[j][0] = g[j-1][0];
            gg[j] = 0;
            for(int k = 1; k <= q[i] - x[i]; k++){
                if(k-1>0){
                    if(j-t-1<=last) f[j][k] = 0;
                    else f[j][k] = g[j-t-1][k-1] % MOD;
                }
                else f[j][k] = g[j-t-1][k-1] % MOD;
                g[j][k] = (g[j-1][k] + f[j][k])% MOD;
                gg[j] = (gg[j] + f[j][k]) % MOD;
                //cerr << j << ' ' << k << ' ' << f[j][k] << ' ' << g[j][k] << endl;
            }
        }  
        for(int j = last + 1; j <= last + q[i]; j++) g[j][0] = (g[j-1][0]+gg[j])%MOD;
        for(int j = 0; j <= last; j++) g[j][0] = g[j+q[i]][0];
    }
    printf("%d\n", g[last][0]);
    return 0;
}

