#include<iostream>
using namespace std;
// 创建土地
short land[32][32];
short n,m;// 实际使用的土地大小
short landA[32][32];//用A收割机收割数量记录
short landB[32][32];// 用B收割机收割数量记录
int main(){cin>>n>>m;// 存储农作物产量for(short i=1;i<=n;i++){for(short j=1;j<=m;j++){scanf("%hd",&land[i][j]);}}// A收割机处理for(short i=1;i<=n;i++){for(short j=1;j<=m;j++){// 上下相邻的两个点到达该位置比较谁大就选谁landA[i][j] = max(landA[i-1][j]+land[i][j],landA[i][j-1]+land[i][j]);}}// B收割机处理for(short i=1;i<=n;i++){for(short j=m;j>=1;j--){landB[i][j] = max(landB[i-1][j]+land[i][j],landB[i][j+1]+land[i][j]);}}printf("%d %d",landA[n][m],landB[n][1]); return 0;
}