#include <bits/stdc++.h>
using
namespace
std;
void
largestArea(
int
N,
int
M,
int
H[],
int
V[],
int
h,
int
v)
{
set<
int
> s1;
set<
int
> s2;
for
(
int
i = 1; i <= N + 1; i++)
s1.insert(i);
for
(
int
i = 1; i <= M + 1; i++)
s2.insert(i);
for
(
int
i = 0; i < h; i++) {
s1.erase(H[i]);
}
for
(
int
i = 0; i < v; i++) {
s2.erase(V[i]);
}
int
list1[s1.size()];
int
list2[s2.size()];
int
i = 0;
for
(
auto
it1 = s1.begin(); it1 != s1.end(); it1++)
{
list1[i++] = *it1;
}
i = 0;
for
(
auto
it2 = s2.begin(); it2 != s2.end(); it2++)
{
list2[i++] = *it2;
}
sort(list1, list1 + s1.size());
sort(list2, list2 + s2.size());
int
maxH = 0, p1 = 0, maxV = 0, p2 = 0;
for
(
int
j = 0; j < s1.size(); j++) {
maxH = max(maxH, list1[j] - p1);
p1 = list1[j];
}
for
(
int
j = 0; j < s2.size(); j++) {
maxV = max(maxV, list2[j] - p2);
p2 = list2[j];
}
cout << (maxV * maxH) << endl;
}
int
main()
{
int
N = 3, M = 3;
int
H[] = { 2 };
int
V[] = { 2 };
int
h =
sizeof
(H) /
sizeof
(H[0]);
int
v =
sizeof
(V) /
sizeof
(V[0]);
largestArea(N, M, H, V, h, v);
return
0;
}