#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int const M = 1000 * 1000 * 1000 + 7;
int main() {
  cin.tie(0);
  cin.sync_with_stdio(0);
  int n, x, y;
  cin >> n >> x >> y;
  vector<pair<int, int>> a(n);
  for (auto& [l, r] : a) cin >> l >> r;
  sort(a.begin(), a.end());
  ll ans = 0;
  multiset<int, greater<int>> ms;
  for (auto [l, r] : a) {
    ll cost_new = ll(x) + ll(y) * (r - l);
    if (ms.empty()) {
      ans += cost_new;
      ans %= M;
      ms.emplace(r);
    } else {
      auto f = ms.upper_bound(l);
      if (f == ms.end()) {
        ans += cost_new;
        ans %= M;
        ms.emplace(r);
      } else {
        auto t = *f;
        ll cost_old = ll(y) * (l - t);
        cost_old += ll(y) * (r - l);
        if (cost_old < cost_new) {
          ms.erase(f);
          ans += cost_old;
          ans %= M;
          ms.emplace(r);
        } else {
          ans += cost_new;
          ans %= M;
          ms.emplace(r);
        }
      }
    }
  }
  cout << ans;
}
