#include <bits/stdc++.h>

using namespace std;
const int MOD1 = 1e9 + 7;
using ll  =  long long;
#define optimize()    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

ll ceildiv(ll a, ll b){return 1LL * (a + b - 1) / b;}

ll n, x;
const int N = 1e5 + 5;
struct minion { ll a, h; };
minion a[N];

void Input() {
    cin >> n >> x;
    for(int i = 0; i < n; i++)
        cin >> a[i].a >> a[i].h,
        a[i].h = ceildiv(a[i].h, x);
}

void Solve() {
    sort(a, a + n, [&](minion a, minion b){ return a.a * b.h > a.h * b.a; });
    ll curr = 0;
    ll res = 0;
    for(int i = 0; i < n; i++) {
        curr += a[i].h;
        curr %= MOD1;
        res += curr * a[i].a;
        res %= MOD1;
    }
    cout << (res + 1) % MOD1 << "\n";
}

int main()
{
    optimize();
    Input();
    Solve();
    return 0;
}
