#include <bits/stdc++.h>
using namespace std;
const long long M = (long long)1e9 + 7;
const double PI = 2 * acos(0.0);
const long long oo = 1e17 + 100;
const string DIGITS = "0123456789", alph = "abcdefghijklmnopqrstuvwxyz",
             ALPH = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const long long N = (long long)1e5 + 200;
vector<long long> g[N];
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n, x, y;
  cin >> n >> x >> y;
  vector<long long> l(n), r(n);
  vector<pair<long long, pair<long long, long long> > > a(2 * n);
  for (long long i = 0; i < n; i++) {
    cin >> l[i] >> r[i];
    a[2 * i] = {l[i], {0, i}};
    a[2 * i + 1] = {r[i], {1, i}};
  }
  sort(a.begin(), a.end());
  stack<long long> past;
  long long p = 0, sum = 0;
  for (long long i = 0; i < 2 * n; i++) {
    if (a[i].second.first == 0) {
      p++;
      long long v = a[i].second.second;
      if (past.empty()) {
        sum = (sum + ((x + (y * (r[v] - l[v]) % M)) % M)) % M;
      } else {
        long long t = past.top();
        past.pop();
        if ((l[v] - t) * y < x)
          sum = (sum + ((r[v] - t) * y % M)) % M;
        else
          sum = (sum + ((x + (y * (r[v] - l[v]) % M)) % M)) % M;
      }
    } else {
      p--;
      long long v = a[i].second.second;
      past.push(r[v]);
    }
  }
  cout << sum;
}
