#include <bits/stdc++.h>
using namespace std;
int n;
long long sol, x, y;
pair<int, int> v[100001];
multiset<int> ms;
multiset<int>::iterator it;
int main() {
  std::ios::sync_with_stdio(false);
  cin >> n >> x >> y;
  for (int i = 1; i <= n; ++i) cin >> v[i].first >> v[i].second;
  sort(v + 1, v + 1 + n);
  for (int i = 1; i <= n; ++i) {
    if (ms.empty() || *ms.begin() >= v[i].first) {
      sol = 1LL * (sol + x + (y * (v[i].second - v[i].first)) % 1000000007) %
            1000000007;
      ms.insert(v[i].second);
    } else {
      it = ms.lower_bound(v[i].first);
      --it;
      long long aux = 1LL * (y * (v[i].first - *it));
      if (aux > x) {
        sol = 1LL * (sol + x + (y * (v[i].second - v[i].first)) % 1000000007) %
              1000000007;
        ms.insert(v[i].second);
      } else {
        sol = 1LL * (sol + aux + (y * 1LL * (v[i].second - v[i].first))) %
              1000000007;
        ms.erase(it);
        ms.insert(v[i].second);
      }
    }
  }
  cout << sol;
  return 0;
}
