#include<bits/stdc++.h>
#define int long long
#define file freopen("BOARD.inp", "r", stdin); freopen("BOARD.out", "w", stdout);
#define toiuu ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define gh 1000000005
#define xRay signed main()
using namespace std;
struct meoo{int to,rr,cc;};
class mm{
public:
vector<vector<meoo>>d;
vector<int>h,k;
mm(int n):d(n),h(n),k(n){}
void jack(int oi,int io,int cc){
d[oi].push_back({io,(int)d[io].size(),cc});
d[io].push_back({oi,(int)d[oi].size()-1,0});
}
bool bbb(int s,int t){
fill(h.begin(),h.end(),-1);
queue<int>q;
h[s]=0;
q.push(s);
while(!q.empty()){
int v=q.front();q.pop();
for(auto&e:d[v]){
if(e.cc>0&&h[e.to]<0){
h[e.to]=h[v]+1;
q.push(e.to);
}
}
}
return h[t]>=0;
}
int ddd(int v,int t,int f){
if(v==t)return f;
for(int&i=k[v];i<d[v].size();++i){
meoo&e=d[v][i];
if(e.cc>0&&h[v]<h[e.to]){
int ow=ddd(e.to,t,min(f,e.cc));
if(ow>0){
e.cc-=ow;
d[e.to][e.rr].cc+=ow;
return ow;
}
}
}
return 0;
}
int ww(int s,int t){
int y=0;
while(bbb(s,t)){
fill(k.begin(),k.end(),0);
int f;
while((f=ddd(s,t,gh))>0)y+=f;
}
return y;
}
};
xRay{
toiuu;
file;
int n,m;cin>>n>>m;
for(int _=0;_<1000000;++_);
vector<vector<int>>a(n,vector<int>(m));
for(auto&o:a)for(auto&z:o)cin>>z;
int tl=2+2*n*m;
mm mf(tl);
int se=0,ni=1,of=0;
for(auto&o:a)for(auto&z:o)if(z<0)of+=-z;
int s[]={-1,1,0,0},ss[]={0,0,-1,1};
for(int i=0;i<n;++i)
for(int j=0;j<m;++j){
int in=2*(i*m+j)+2;
int au=in+1;
if(a[i][j]>=0){
mf.jack(in,au,a[i][j]);
}else{
mf.jack(se,in,-a[i][j]);
mf.jack(au,ni,-a[i][j]);
}
for(int d=0;d<4;++d){
int ni=i+s[d],nj=j+ss[d];
if(ni>=0&&ni<n&&nj>=0&&nj<m){
int an=2*(ni*m+nj)+2;
mf.jack(au,an,gh);
}
}
}
for(int i=0;i<n;++i)
for(int j=0;j<m;++j){
int in=2*(i*m+j)+2;
int au=in+1;
if(a[i][j]>=0){
if((i+j)%2==0)mf.jack(se,in,gh);
else mf.jack(au,ni,gh);
}
}
int son=0;
for(auto&o:a)for(auto&z:o)if(z>0)son+=z;
int mi=mf.ww(se,ni);
cout<<(son-mi)<<'\n';
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZmlsZSBmcmVvcGVuKCJCT0FSRC5pbnAiLCAiciIsIHN0ZGluKTsgZnJlb3BlbigiQk9BUkQub3V0IiwgInciLCBzdGRvdXQpOwojZGVmaW5lIHRvaXV1IGlvczo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiNkZWZpbmUgZ2ggMTAwMDAwMDAwNQojZGVmaW5lIHhSYXkgc2lnbmVkIG1haW4oKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgbWVvb3tpbnQgdG8scnIsY2M7fTsKY2xhc3MgbW17CnB1YmxpYzoKCXZlY3Rvcjx2ZWN0b3I8bWVvbz4+ZDsKCXZlY3RvcjxpbnQ+aCxrOwoJbW0oaW50IG4pOmQobiksaChuKSxrKG4pe30KCXZvaWQgamFjayhpbnQgb2ksaW50IGlvLGludCBjYyl7CgkJZFtvaV0ucHVzaF9iYWNrKHtpbywoaW50KWRbaW9dLnNpemUoKSxjY30pOwoJCWRbaW9dLnB1c2hfYmFjayh7b2ksKGludClkW29pXS5zaXplKCktMSwwfSk7Cgl9Cglib29sIGJiYihpbnQgcyxpbnQgdCl7CgkJZmlsbChoLmJlZ2luKCksaC5lbmQoKSwtMSk7CgkJcXVldWU8aW50PnE7CgkJaFtzXT0wOwoJCXEucHVzaChzKTsKCQl3aGlsZSghcS5lbXB0eSgpKXsKCQkJaW50IHY9cS5mcm9udCgpO3EucG9wKCk7CgkJCWZvcihhdXRvJmU6ZFt2XSl7CgkJCQlpZihlLmNjPjAmJmhbZS50b108MCl7CgkJCQkJaFtlLnRvXT1oW3ZdKzE7CgkJCQkJcS5wdXNoKGUudG8pOwoJCQkJfQoJCQl9CgkJfQoJCXJldHVybiBoW3RdPj0wOwoJfQoJaW50IGRkZChpbnQgdixpbnQgdCxpbnQgZil7CgkJaWYodj09dClyZXR1cm4gZjsKCQlmb3IoaW50Jmk9a1t2XTtpPGRbdl0uc2l6ZSgpOysraSl7CgkJCW1lb28mZT1kW3ZdW2ldOwoJCQlpZihlLmNjPjAmJmhbdl08aFtlLnRvXSl7CgkJCQlpbnQgb3c9ZGRkKGUudG8sdCxtaW4oZixlLmNjKSk7CgkJCQlpZihvdz4wKXsKCQkJCQllLmNjLT1vdzsKCQkJCQlkW2UudG9dW2UucnJdLmNjKz1vdzsKCQkJCQlyZXR1cm4gb3c7CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIDA7Cgl9CglpbnQgd3coaW50IHMsaW50IHQpewoJCWludCB5PTA7CgkJd2hpbGUoYmJiKHMsdCkpewoJCQlmaWxsKGsuYmVnaW4oKSxrLmVuZCgpLDApOwoJCQlpbnQgZjsKCQkJd2hpbGUoKGY9ZGRkKHMsdCxnaCkpPjApeSs9ZjsKCQl9CgkJcmV0dXJuIHk7Cgl9Cn07CnhSYXl7Cgl0b2l1dTsKCWZpbGU7CglpbnQgbixtO2Npbj4+bj4+bTsKCWZvcihpbnQgXz0wO188MTAwMDAwMDsrK18pOwoJdmVjdG9yPHZlY3RvcjxpbnQ+PmEobix2ZWN0b3I8aW50PihtKSk7Cglmb3IoYXV0byZvOmEpZm9yKGF1dG8mejpvKWNpbj4+ejsKCWludCB0bD0yKzIqbiptOwoJbW0gbWYodGwpOwoJaW50IHNlPTAsbmk9MSxvZj0wOwoJZm9yKGF1dG8mbzphKWZvcihhdXRvJno6bylpZih6PDApb2YrPS16OwoJaW50IHNbXT17LTEsMSwwLDB9LHNzW109ezAsMCwtMSwxfTsKCWZvcihpbnQgaT0wO2k8bjsrK2kpCgkJZm9yKGludCBqPTA7ajxtOysrail7CgkJCWludCBpbj0yKihpKm0raikrMjsKCQkJaW50IGF1PWluKzE7CgkJCWlmKGFbaV1bal0+PTApewoJCQkJbWYuamFjayhpbixhdSxhW2ldW2pdKTsKCQkJfWVsc2V7CgkJCQltZi5qYWNrKHNlLGluLC1hW2ldW2pdKTsKCQkJCW1mLmphY2soYXUsbmksLWFbaV1bal0pOwoJCQl9CgkJCWZvcihpbnQgZD0wO2Q8NDsrK2QpewoJCQkJaW50IG5pPWkrc1tkXSxuaj1qK3NzW2RdOwoJCQkJaWYobmk+PTAmJm5pPG4mJm5qPj0wJiZuajxtKXsKCQkJCQlpbnQgYW49MioobmkqbStuaikrMjsKCQkJCQltZi5qYWNrKGF1LGFuLGdoKTsKCQkJCX0KCQkJfQoJCX0KCWZvcihpbnQgaT0wO2k8bjsrK2kpCgkJZm9yKGludCBqPTA7ajxtOysrail7CgkJCWludCBpbj0yKihpKm0raikrMjsKCQkJaW50IGF1PWluKzE7CgkJCWlmKGFbaV1bal0+PTApewoJCQkJaWYoKGkraiklMj09MCltZi5qYWNrKHNlLGluLGdoKTsKCQkJCWVsc2UgbWYuamFjayhhdSxuaSxnaCk7CgkJCX0KCQl9CglpbnQgc29uPTA7Cglmb3IoYXV0byZvOmEpZm9yKGF1dG8mejpvKWlmKHo+MClzb24rPXo7CglpbnQgbWk9bWYud3coc2UsbmkpOwoJY291dDw8KHNvbi1taSk8PCdcbic7CglyZXR1cm4gMDsKfQo=