#include <bits/stdc++.h>
using namespace std;
long long n, x, y;
signed main() {
  long long t = 1;
  ;
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(NULL);
  while (t-- > 0) {
    cin >> n >> x >> y;
    long long l1, r1;
    vector<pair<long long, long long>> val;
    for (long long i = 0; i < n; i++) {
      cin >> l1 >> r1;
      val.push_back({l1, r1});
    }
    sort(val.begin(), val.end());
    multiset<long long> s;
    long long ans = 0;
    ans = x + (val[0].second - val[0].first) * y;
    ans %= 1000000007;
    s.insert(val[0].second);
    for (long long i = 1; i < n; i++) {
      ans += (val[i].second - val[i].first) * y;
      ans %= 1000000007;
      if (s.size() == 0) {
        ans += x;
        s.insert(val[i].second);
        continue;
      }
      auto it = s.lower_bound(val[i].first);
      if (it == s.begin()) {
        ans += x;
        s.insert(val[i].second);
        continue;
      }
      it--;
      long long v = *it;
      assert(v < val[i].first);
      if ((val[i].first - v) * y >= x)
        ans += x;
      else {
        ans += (val[i].first - v) * y;
        s.erase(it);
      }
      s.insert(val[i].second);
    }
    ans %= 1000000007;
    cout << ans << "\n";
  };
  return 0;
}
