은퇴한 해적이 금화를 상자에 넣고 흐린 연못에 가라앉혀 숨기려고 한다.
상자는 직육면체이다. 윗면과 아랫면은 정수 길이의 변을 가진 서로 합동인 직사각형으로, 한 변은 최대 a, 다른 변은 최대 b이다. 높이는 임의의 양의 정수이다. 상자는 항상 격자에 맞춰 놓이며, 윗면은 연못 수면과 평행을 유지한다.
연못의 수면은 m×n개의 단위 정사각형으로 이루어진 직사각형이며, 높고 수직인 바위 벽으로 둘러싸인 골짜기를 가득 채우고 있다. 칸 (i,j)에서의 물 깊이는 di,j이다.
상자를 연못에 내리면 밑면이 연못 바닥에 닿을 때까지 최대한 가라앉아, 자신의 밑면이 덮는 칸들 중 가장 얕은 칸 위에 놓인다. 잠긴 상자가 밀어낸 물은 연못 수면의 높이를 끌어올린다. 이 상승은 상자 주변에 밀려난 물이 퍼질 공간이 없어도 일어나며, 골짜기 벽은 물이 절대 넘치지 않을 만큼 충분히 높다.
숨겨지려면 상자의 윗면이 결국 높아진 수면보다 엄격히 아래에 있어야 한다. 만약 상자가 딱 한 단위만 더 높았다면 윗면이 수면에 닿아 보이게 되므로, 이는 허용되지 않는다.
이렇게 연못에 숨길 수 있는 상자의 최대 부피를 구하여라.
첫째 줄에 네 정수 a, b, m, n이 주어진다 (1≤a,b,m,n≤500). 연못의 수면은 m×n이고, 상자 윗면의 크기는 최대 a×b이다. a와 b는 윗면 크기가 a×b인 상자로 연못 전체를 결코 덮을 수 없을 만큼 작다.
이어지는 m개의 줄에는 각각 n개의 정수가 주어진다. i번째 줄의 j번째 정수는 칸 (i,j)의 물 깊이 di,j이다 (0≤di,j≤109).
직사각형 상자(윗면의 한 변은 a 이하, 다른 변은 b 이하)를 연못 수면 아래로 완전히 잠기게 할 수 있는 최대 부피를 정수 하나로 출력한다. 숨길 수 있는 상자가 없으면 0을 출력한다.