#include<stdio.h>
int main(){
int m,n,i,j;
long long max=-1;
int maxi,maxj;
scanf("%d%d",&m,&n);
long long a[m][n];
long long b[m][n]; //m,n为子矩阵左上角元素
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%lld",&a[i][j]);
for(i=0;i<m-1;i++)
for(j=0;j<n-1;j++)
{
if(a[i][j]*a[i+1][j]*a[i][j+1]*a[i+1][j+1]>=max)
{
max=a[i][j]*a[i+1][j]*a[i][j+1]*a[i+1][j+1];
maxi=i;
maxj=j;
}
}
printf("%lld\n",a[maxi][maxj]*a[maxi][maxj+1]*a[maxi+1][maxj]*a[maxi+1][maxj+1]);
printf("%lld %lld\n",a[maxi][maxj],a[maxi][maxj+1]);
printf("%lld %lld\n",a[maxi+1][maxj],a[maxi+1][maxj+1]);
return 0;
}