#include <bits/stdc++.h>
using namespace std;
const long long int N = 2e5 + 6, inf = 1e9 + 7;
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long int n, x, y;
  cin >> n >> x >> y;
  vector<pair<int, int> > P(n);
  for (int i = 0; i < n; i++) cin >> P[i].first >> P[i].second;
  sort(P.begin(), P.end());
  long long int res = 0;
  multiset<int> st;
  for (int i = 0; i < n; i++) {
    auto it = st.upper_bound(P[i].first);
    if (st.empty() || it == st.begin()) {
      res += x + (P[i].second - P[i].first) * y;
      res %= inf;
    } else {
      it--;
      res +=
          min(x + (P[i].second - P[i].first) * y, (P[i].second - *it + 1) * y);
      res %= inf;
      st.erase(it);
    }
    st.insert(P[i].second + 1);
  }
  cout << res << "\n";
}
