#include <bits/stdc++.h>
using namespace std;
long long int m = 1000000007;
int main() {
  long long int n, x, y, res = 0;
  cin >> n >> x >> y;
  multiset<long long int> st, ed;
  for (long long int i = 0; i < n; i++) {
    long long int l, r;
    cin >> l >> r;
    st.insert(l);
    ed.insert(r);
    res += (x + (y * (r - l)) % m) % m;
    res %= m;
  }
  for (auto it = st.begin(); it != st.end(); it++) {
    auto kt = ed.lower_bound(*it);
    auto ut = prev(kt, 1);
    if (kt != ed.begin() && (y * (*it - *ut) < x)) {
      res += ((y * (*it - *ut)) % m + (m - x) % m) % m;
      res %= m;
      ed.erase(ut);
    }
  }
  cout << res;
}
