#include <bits/stdc++.h>
using namespace std;
void solve() {
  int n, x, y;
  cin >> n >> x >> y;
  vector<pair<int, int> > v(n);
  for (int i = 0; i <= (n - 1); ++i) {
    int s, e;
    cin >> s >> e;
    v[i] = {s, e};
  }
  sort(v.begin(), v.end());
  multiset<int> s;
  long long ans = 0;
  for (int i = 0; i <= (n - 1); ++i) {
    auto it = s.lower_bound(v[i].first);
    if (it == s.begin()) {
      ans += x + (long long)y * (v[i].second - v[i].first);
      ans %= 1000 * 1000 * 1000 + 7;
      s.insert(v[i].second);
    } else {
      it--;
      int last = *it;
      ans += min(x + (long long)y * (v[i].second - v[i].first),
                 (long long)y * (v[i].second - last));
      ans %= 1000 * 1000 * 1000 + 7;
      s.erase(it);
      s.insert(v[i].second);
    }
  }
  cout << ans;
}
int main() {
  clock_t beg = clock();
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    solve();
  }
  clock_t end = clock();
  fprintf(stderr, "%lf\n", (double)(end - beg) / CLOCKS_PER_SEC);
}
