#include<stdio.h>

int map[200][200],dp[200][200][200][200];
int h,w,num;

int search(int ax,int ay,int bx,int by){
	int i;
	if(ax==0 && ay==0){
		return search(ax+1,ay,bx,by+1);
	}else if(ax==h && ay==w){
		return 0;
	}else{
		if(dp[ax][ay][bx][by]==0){
		for(i=0;i<4;i++){
			if(ax+(i%2)<h && ay+(1-i%2)<w && bx+i/2<h && by+(1-i/2)<w){
				if((ax+(i%2)!=bx+(i/2))) return dp[ax][ay][bx][by]=map[ax][ay]+map[bx][by]+search(ax+(i%2),ay+(1-i%2),bx+i/2,by+(1-i/2));
			}
		}
		}else{
			return dp[ax][ay][bx][by]
		}
	}
}

int main(){
	int i,j;
	scanf("%d %d",&h,&w);
	for(i=0;i<h;i++){
		for(j=0;j<w;j++){
			scanf("%d",&map[i][j]);
		}
	}
	printf("%d\n",search(0,0,0,0));
	return 0;
}
