#include <bits/stdc++.h>
using namespace std;
int n;
long long x, y;
long long ans = 0, M = 1e9 + 7;
vector<tuple<int, int, int>> a;
vector<int> hav;
void solve() {
  cin >> n >> x >> y;
  for (int i = 0; i < n; ++i) {
    int u, v;
    cin >> u >> v;
    a.push_back(make_tuple(u, 0, u));
    a.push_back(make_tuple(v, 1, u));
  }
  sort(a.begin(), a.end());
  for (auto& i : a) {
    int p, t, b;
    tie(p, t, b) = i;
    if (t == 0) {
      if (hav.empty()) {
        ans = (ans + x) % M;
        continue;
      }
      long long tmp = (p - hav.back()) * y;
      if (tmp < x) {
        ans = (ans + tmp) % M;
        hav.pop_back();
        continue;
      }
      ans = (ans + x) % M;
      continue;
    }
    ans = (ans + y * (p - b)) % M;
    hav.push_back(p);
  }
  cout << ans;
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  ;
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
