#include<iostream>
#include<math.h>
#include<algorithm>
#include<utility>
#include<queue>
#include<string.h>
#include<string>
#include<set>
#include<map>
#include<vector>
using namespace std;
typedef long long LL;
typedef pair<int, int> P;
int H,W;
int c[11][11];

int Calc(int h1,int w1,int h2,int w2){
    int minWall=10;
    for(int i=w1;i<=w2;i++){//上辺
        minWall=min(minWall,c[h1][i]);
    }
    for(int i=h1;i<=h2;i++){//右辺
        minWall=min(minWall,c[i][w2]);
    }
    for(int i=w1;i<=w2;i++){//下辺
        minWall=min(minWall,c[h2][i]);
    }
    for(int i=h1;i<=h2;i++){//左辺
        minWall=min(minWall,c[i][w1]);
    }
    int ans=0;
    for(int i=h1+1;i<h2;i++){
        for(int j=w1+1;j<w2;j++){
            if(c[i][j]>=minWall){
                return 0;
            }else{
                ans+=minWall-c[i][j];
            }
        }
    }
    return ans;
}
int main(){
    
    while(cin>>H>>W,H!=0){
        for(int i=0;i<H;i++){
            for(int j=0;j<W;j++){
                cin>>c[i][j];
            }
        }
        int ans=0;
        for(int i=0;i<H-2;i++){
            for(int j=0;j<W-2;j++){
                for(int k=i+2;k<H;k++){
                    for(int l=j+2;l<W;l++){
                        ans=max(ans,Calc(i,j,k,l));
                    }
                }
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}
