#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];
ll 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 ) || (n % 2 != 0 && m % 2 != 0)
|| (n % 2!= 0 && m % 2 ==0 ))
notiring = true;
if (notiring) {
cout<<sumx<<'\n';
return;
}
ll mini = INT_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(){
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCmNvbnN0IGxsIGNvbiA9IDFlOTsKI2RlZmluZSBZRVMgY291dCA8PCAiWUVTXG4iCiNkZWZpbmUgTk8gY291dCA8PCAiTk9cbiIKI2RlZmluZSBZZXMgY291dCA8PCAiWWVzXG4iCiNkZWZpbmUgTm8gY291dCA8PCAiTm9cbiIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuICwgbSA7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgYm9vbCBub3RpcmluZyA9IGZhbHNlIDsKICAgIGxsIGdyaWRbbl1bbV07CiAgICBsbCBzdW14ID0gMCA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbTsgaisrKSB7CiAgICAgICAgICAgIGNpbiA+PiBncmlkW2ldW2pdOwogICAgICAgICAgICBzdW14ICs9IGdyaWRbaV1bal07CiAgICAgICAgfQogICAgfQogICAgaWYgKChuICUgMj09IDAgJiYgbSAlIDIgIT0wICkgfHwgKG4gJSAyICE9IDAgJiYgbSAlIDIgIT0gMCkKICAgICAgICB8fCAobiAlIDIhPSAwICYmIG0gJSAyID09MCApKQogICAgICAgIG5vdGlyaW5nID0gdHJ1ZTsKICAgIGlmIChub3RpcmluZykgewogICAgICAgIGNvdXQ8PHN1bXg8PCdcbic7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGwgbWluaSA9IElOVF9NQVggOwogICAgZm9yICggaW50IGkgPSAwIDsgaSA8IG4gOyBpKyspIHsKICAgICAgICBmb3IgKCBpbnQgaiA9IDAgOyBqIDwgbSA7IGorKykgewogICAgICAgICAgICBpZiAoIChpICsgaikgJSAyICE9IDApCiAgICAgICAgICAgICAgICBtaW5pID0gbWluKG1pbmksIGdyaWRbaV1bal0pOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgc3VteCAtIG1pbmkgPDwgJ1xuJzsKfQppbnQgbWFpbigpewogICAgc29sdmUoKTsKfQ==