#include using namespace std; using ll = long long; int main() { int N; ll D; cin >> N >> D; vector > V(N); ll total = 0; for (auto &[b, a]: V) { cin >> a >> b; total += a; } ranges::sort(V, greater()); ll K = min(D, total); ll base = 0, cur = 0; map< ll, ll > events; for (auto [b, a]: V) { auto take = min(a, K); if (take == 0) break; base += take * (b / D); if (b % D != 0) { events[b % D] += take; cur += take; } K -= take; } ll add = cur; for (auto [r, cnt] : events) { cur -= cnt; add = min(add, r + cur); } cout << base + add << endl; }