#include <bits/stdc++.h>
using namespace std;
const int N = 4005;
const long long MOD = 1e9 + 7;
const long long M = 1e18;
long long qpow(long long a, long long b, long long m) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = (ans * a) % m;
    b /= 2;
    a = (a * a) % m;
  }
  return ans;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int tt = 1;
  while (tt--) {
    int n;
    long long x, y;
    cin >> n >> x >> y;
    vector<pair<int, int> > v;
    int l, r;
    for (int i = 0; i < n; i++) {
      cin >> l >> r;
      v.push_back({l, r});
    }
    sort(v.begin(), v.end());
    long long ans = 0;
    multiset<long long> ss;
    for (int i = 0; i < n; i++) {
      if (ss.size()) {
        auto it = ss.lower_bound(v[i].first);
        if (it != ss.begin()) {
          it--;
          if ((v[i].second - (*it)) * y <= x + (v[i].second - v[i].first) * y) {
            ans = (ans + ((v[i].second - (*it)) * y) % MOD) % MOD;
            ss.erase(it);
          } else {
            ans = (ans + x + ((v[i].second - v[i].first) * y) % MOD) % MOD;
          }
          ss.insert(v[i].second);
        } else {
          ss.insert(v[i].second);
          ans = (ans + x + ((v[i].second - v[i].first) * y) % MOD) % MOD;
        }
      } else {
        ss.insert(v[i].second);
        ans = (ans + x + ((v[i].second - v[i].first) * y) % MOD) % MOD;
      }
    }
    cout << ans;
  }
  return 0;
}
