#include<bits/stdc++.h>
using namespace std;
const int MAXN= 2e8+11;
vector<vector<int>> A(109,vector<int>(109,MAXN));
int T=0;
bool ASFD=true;
void compare(pair<int,int>&min){
int a=A[min.first][min.second-1];
int d=A[min.first][min.second+1];
int w=A[min.first-1][min.second];
int s=A[min.first+1][min.second];
if(a<d&&a<s&&a<w)min.second-=1;
else if(d<s&&d<w&&d<a)min.second+=1;
else if(s<d&&s<w&&s<a)min.first+=1;
else if(w<d&&w<s&&w<a)min.first-=1;
else{
cout<<T<<endl;
ASFD=false;
}
}
int main(){
int n,m;
pair<int,int>min;
int min_num=MAXN;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>A[i][j];
if(A[i][j]<min_num){
min={i,j};
min_num=A[i][j];
}
}
}
while(ASFD){
T+=A[min.first][min.second];
A[min.first][min.second]=MAXN;
compare(min);
}
}