#include <bits/stdc++.h>
using namespace std;
const int maxn = 1005;
long long a[maxn][maxn];
long long f[maxn][maxn];
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
cin >> a[i][j];
}
}
for (int i = 1; i <= n; ++i) {
f[i][1] = a[i][1];
}
for (int j = 2; j <= m; ++j) {
for (int i = 1; i <= n; ++i) {
long long mx = 0;
mx = max(mx, f[i][j-1]);
if (i > 1) {
mx = max(mx, f[i - 1][j - 1]);
}
if (i < n) {
mx = max(mx, f[i + 1][j - 1]);
}
f[i][j] = a[i][j] + mx;
}
}
long long mx = 0;
for (int i = 1; i <= n; ++i) {
mx = max(mx, f[i][m]);
}
cout << mx;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBtYXhuID0gMTAwNTsKbG9uZyBsb25nIGFbbWF4bl1bbWF4bl07CmxvbmcgbG9uZyBmW21heG5dW21heG5dOwoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgbTsKICAgIGNpbiA+PiBuID4+IG07CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8PSBtOyArK2opIHsKICAgICAgICAgICAgY2luID4+IGFbaV1bal07CiAgICAgICAgfQogICAgfQoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewogICAgICAgIGZbaV1bMV0gPSBhW2ldWzFdOwogICAgfQoKICAgIGZvciAoaW50IGogPSAyOyBqIDw9IG07ICsraikgewogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewogICAgICAgICAgICBsb25nIGxvbmcgbXggPSAwOwogICAgICAgICAgICBteCA9IG1heChteCwgZltpXVtqLTFdKTsKICAgICAgICAgICAgaWYgKGkgPiAxKSB7CiAgICAgICAgICAgICAgICBteCA9IG1heChteCwgZltpIC0gMV1baiAtIDFdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaSA8IG4pIHsKICAgICAgICAgICAgICAgIG14ID0gbWF4KG14LCBmW2kgKyAxXVtqIC0gMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZbaV1bal0gPSBhW2ldW2pdICsgbXg7CiAgICAgICAgfQogICAgfQoKICAgIGxvbmcgbG9uZyBteCA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICBteCA9IG1heChteCwgZltpXVttXSk7CiAgICB9CiAgICBjb3V0IDw8IG14OwoKICAgIHJldHVybiAwOwp9Cg==