#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 20;
const int maxm = 80;
const ll LLINF = 1e18;
int a[maxm+5][maxn+5], m, n;
ll dp[maxm+5];
void read() {
cin >> m >> n;
for (int i = 1; i<=m; ++i) {
for (int j = 1; j<=n; ++j) cin >> a[i][j];
}
}
void solve() {
for (int i = 1; i<=n; ++i) {
ll new_dp[maxm+5];
for (int j = 0; j<=m; ++j) new_dp[j] = 0;
for (int j = 0; j<=m; ++j) {
for (int k = 0; k<=j; ++k) {
new_dp[j] = max(new_dp[j], dp[j-k] + a[k][i]);
}
}
for (int j = 0; j<=m; ++j) dp[j] = new_dp[j];
}
ll res = 0;
for (int i = 0; i<=m; ++i) res = max(res, dp[i]);
cout << res;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
read();
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgbWF4biA9IDIwOwpjb25zdCBpbnQgbWF4bSA9IDgwOwpjb25zdCBsbCBMTElORiA9IDFlMTg7CmludCBhW21heG0rNV1bbWF4bis1XSwgbSwgbjsKbGwgZHBbbWF4bSs1XTsKdm9pZCByZWFkKCkgewogICAgY2luID4+IG0gPj4gbjsKICAgIGZvciAoaW50IGkgPSAxOyBpPD1tOyArK2kpIHsKICAgICAgICBmb3IgKGludCBqID0gMTsgajw9bjsgKytqKSBjaW4gPj4gYVtpXVtqXTsKICAgIH0KfQp2b2lkIHNvbHZlKCkgewogICAgZm9yIChpbnQgaSA9IDE7IGk8PW47ICsraSkgewogICAgICAgIGxsIG5ld19kcFttYXhtKzVdOwogICAgICAgIGZvciAoaW50IGogPSAwOyBqPD1tOyArK2opIG5ld19kcFtqXSA9IDA7CgogICAgICAgIGZvciAoaW50IGogPSAwOyBqPD1tOyArK2opIHsKICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGs8PWo7ICsraykgewogICAgICAgICAgICAgICAgbmV3X2RwW2pdID0gbWF4KG5ld19kcFtqXSwgZHBbai1rXSArIGFba11baV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAoaW50IGogPSAwOyBqPD1tOyArK2opIGRwW2pdID0gbmV3X2RwW2pdOwogICAgfQogICAgbGwgcmVzID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpPD1tOyArK2kpIHJlcyA9IG1heChyZXMsIGRwW2ldKTsKICAgIGNvdXQgPDwgcmVzOwp9CmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIHJlYWQoKTsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=