#include <bits/stdc++.h>
using namespace std;
using namespace std;
const int SI = 1e5 + 100;
const long long mod = 1e9 + 7;
pair<int, int> P[SI];
int N;
int x, y;
long long ans;
multiset<long long> R;
multiset<long long> L;
int main() {
  scanf("%d %d %d", &N, &x, &y);
  for (int i = (1); i <= (N); ++i) scanf("%d %d", &P[i].first, &P[i].second);
  sort(P + 1, P + 1 + N);
  R.insert(P[1].second);
  L.insert(P[1].first);
  for (int i = (2); i <= (N); ++i) {
    auto it = R.lower_bound(P[i].first);
    if (it == R.begin()) {
      R.insert(P[i].second);
      L.insert(P[i].first);
    } else {
      it--;
      long long val = *it;
      if (P[i].first > val && 1ll * (P[i].first - val) * y < x) {
        R.erase(it);
        R.insert(P[i].second);
      } else {
        R.insert(P[i].second);
        L.insert(P[i].first);
      }
    }
  }
  ans = 1ll * x * ((int)(R.size())) % mod;
  for (auto it : R) {
    ans += 1ll * it * y;
    ans %= mod;
  }
  for (auto it : L) {
    ans += -1ll * it * y % mod + mod;
    ans = (ans + mod) % mod;
  }
  printf("%I64d", ans);
  return 0;
}
