#include <bits/stdc++.h>
#define ll long long
const ll con = 1e9;
#define YES cout << "YES\n"
#define NO cout << "NO\n"
#define Yes cout << "Yes\n"
#define No cout << "No\n"
using namespace std;
void solve() {
int n , m ;
cin >> n >> m;
bool notiring = false ;
ll grid[n][m] , sumx = 0 ;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> grid[i][j];
sumx += grid[i][j];
}
}
if (n % 2 != 0 || m % 2 != 0)
notiring = true;
if (notiring) {
cout<<sumx<<'\n';
return;
}
ll mini = LONG_LONG_MAX ;
for ( int i = 0 ; i < n ; i++) {
for ( int j = 0 ; j < m ; j++) {
if ( (i + j) % 2 != 0)
mini = min(mini, grid[i][j]);
}
}
cout << sumx - mini << '\n';
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCmNvbnN0IGxsIGNvbiA9IDFlOTsKI2RlZmluZSBZRVMgY291dCA8PCAiWUVTXG4iCiNkZWZpbmUgTk8gY291dCA8PCAiTk9cbiIKI2RlZmluZSBZZXMgY291dCA8PCAiWWVzXG4iCiNkZWZpbmUgTm8gY291dCA8PCAiTm9cbiIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuICwgbSA7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgYm9vbCBub3RpcmluZyA9IGZhbHNlIDsKICAgIGxsIGdyaWRbbl1bbV0gLCBzdW14ID0gMCA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbTsgaisrKSB7CiAgICAgICAgICAgIGNpbiA+PiBncmlkW2ldW2pdOwogICAgICAgICAgICBzdW14ICs9IGdyaWRbaV1bal07CiAgICAgICAgfQogICAgfQogICAgaWYgKG4gJSAyICE9IDAgfHwgbSAlIDIgIT0gMCkKICAgICAgICBub3RpcmluZyA9IHRydWU7CiAgICBpZiAobm90aXJpbmcpIHsKICAgICAgICBjb3V0PDxzdW14PDwnXG4nOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGxsIG1pbmkgPSBMT05HX0xPTkdfTUFYIDsKICAgIGZvciAoIGludCBpID0gMCA7IGkgPCBuIDsgaSsrKSB7CiAgICAgICAgZm9yICggaW50IGogPSAwIDsgaiA8IG0gOyBqKyspIHsKICAgICAgICAgICAgaWYgKCAoaSArIGopICUgMiAhPSAwKQogICAgICAgICAgICAgICAgbWluaSA9IG1pbihtaW5pLCBncmlkW2ldW2pdKTsKICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IHN1bXggLSBtaW5pIDw8ICdcbic7Cn0KaW50IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIHNvbHZlKCk7Cn0=