#include <bits/stdc++.h>
using namespace std;
const long long int modulo = 1e9 + 7;
void add(long long int &a, long long int b) { a = (a + b) % modulo; }
const int limit = 1000000;
int n;
long long int x, y;
long long int sol;
multiset<int> s;
void remove(int x) { s.erase(s.find(x)); }
pair<int, int> v[limit];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> x >> y;
  for (int i = 1; i <= n; i++) cin >> v[i].first >> v[i].second;
  sort(v + 1, v + (n + 1));
  for (int i = 1; i <= n; i++) {
    long long int l = v[i].first;
    long long int r = v[i].second;
    s.insert(r);
    multiset<int>::iterator it = s.lower_bound(l);
    if (it == s.begin()) {
      add(sol, x + y * (r - l));
    } else {
      it--;
      long long int R = *it;
      long long int solR = y * (r - R);
      long long int solnoR = x + y * (r - l);
      if (solR < solnoR) {
        remove(R);
        add(sol, solR);
      } else {
        add(sol, solnoR);
      }
    }
  }
  cout << sol << endl;
}
