#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 100;
const int mod = 1e9 + 7;
pair<long long, long long> a[maxn];
multiset<long long, greater<long long> > endings;
int main() {
  std::ios::sync_with_stdio(false);
  long long n, x, y;
  cin >> n >> x >> y;
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    long long l, r;
    cin >> l >> r;
    a[i] = make_pair(l, r);
  }
  sort(a, a + n);
  ans = (ans + x + y * (a[0].second - a[0].first)) % mod;
  endings.insert(a[0].second);
  multiset<long long, greater<long long> >::iterator it;
  for (int i = 1; i < n; i++) {
    it = endings.upper_bound(a[i].first);
    if (it == endings.end()) {
      endings.insert(a[i].second);
      ans = (ans + x + y * (a[i].second - a[i].first)) % mod;
      continue;
    }
    long long l = *(it);
    if ((a[i].first - l) * y >= x || a[i].first <= l) {
      endings.insert(a[i].second);
      ans = (ans + x + y * (a[i].second - a[i].first)) % mod;
    } else {
      endings.erase(it);
      endings.insert(a[i].second);
      ans = (ans + y * (a[i].second - l)) % mod;
    }
  }
  cout << ans;
  return 0;
}
