program main
implicit none
integer :: h, w, i, j, k, l, c(100, 100), ma, s
integer :: ruiseki(0:100, 0:100), ruiseki2d(0:100, 0:100)
read(*, *) h, w
do i = 1, h
read(*, *) c(1:w, i)
end do
do i = 1, h
do j = 1, w
if (mod(i + j, 2) == 0) then
c(j, i) = - c(j, i)
end if
end do
end do
ruiseki(:, :) = 0
do i = 1, h
do j = 1, w
ruiseki(j, i) = ruiseki(j - 1, i) + c(j, i)
end do
end do
ruiseki2d(:, :) = 0
do i = 1, h
do j = 1, w
ruiseki2d(j, i) = ruiseki2d(j, i - 1) + ruiseki(j, i)
end do
end do
ma = 0
do i = 1, h
do k = i, h
do j = 1, w
do l = j, w
s = ruiseki2d(l, k) - ruiseki2d(l, i - 1) - ruiseki2d(j - 1, k) + ruiseki2d(j - 1, i - 1)
if (s == 0) then
ma = max(ma, (k - i + 1) * (l - j + 1))
end if
end do
end do
end do
end do
write(*, "(i0)") ma
end program main