#include <bits/stdc++.h>
using namespace std;
int w, h;
int fill(int x, int y, int xx, int yy) {
  if (w - x >= xx && h >= max(yy, y)) return x * y + xx * yy;
  if (w - y >= xx && h >= max(yy, x)) return x * y + xx * yy;
  if (w - x >= yy && h >= max(xx, y)) return x * y + xx * yy;
  if (w - y >= yy && h >= max(xx, x)) return x * y + xx * yy;
  if (h - y >= yy && w >= max(xx, x)) return x * y + xx * yy;
  if (h - x >= yy && w >= max(xx, y)) return x * y + xx * yy;
  if (h - y >= xx && w >= max(yy, x)) return x * y + xx * yy;
  if (h - x >= xx && w >= max(yy, y)) return x * y + xx * yy;
  return 0;
}
int main() {
  int n;
  cin >> n >> w >> h;
  if (w > h) {
    swap(w, h);
  }
  vector<pair<int, int>> q;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y;
    q.emplace_back(min(x, y), max(x, y));
  }
  int ma = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (j != i) {
        int x = fill(q[i].first, q[i].second, q[j].first, q[j].second);
        ma = max(ma, x);
      }
    }
  }
  cout << ma;
  return 0;
}
