N, D = map(int, input().split()) V = [] total = 0 for _ in range(N): a, b = map(int, input().split()) V.append((b, a)) total += a V.sort(reverse=True) K = min(D, total) base = 0 cur = 0 events = {} for b, a in V: take = min(a, K) if take == 0: break base += take * (b // D) r = b % D if r != 0: events[r] = events.get(r, 0) + take cur += take K -= take add = cur for r in sorted(events): cnt = events[r] cur -= cnt add = min(add, r + cur) print(base + add)