/*
TASK:apple
LANG:C++
*/
#include <iostream>

using namespace std;

int n,m,i,j,a[70][70],dn1[70][70],dn2[70][70];

int din1(int i,int j)
{
	if((i<0)||(j<0))
		return 0;
	if(dn1[i][j]!=-1)
		return dn1[i][j];
	int t=max(din1(i-1,j),din1(i,j-1));
	dn1[i][j]=t+a[i][j];
	return dn1[i][j];
}

int din2(int i,int j)
{
	if((i<0)||(j<0))
		return 0;
	if(dn2[i][j]!=-1)
		return dn2[i][j];
	int t=max(din2(i-1,j),din2(i,j-1));
	dn2[i][j]=t+a[i][j];
	return dn2[i][j];
}

void null(int i,int j)
{
	int t=dn1[i][j]-a[i][j];
	if((i-1>=0)&&(t==dn1[i-1][j]))
		null(i-1,j);
	else
		if(j-1>=0)
			null(i,j-1);
	a[i][j]=0;
}

int main()
{
//	cin>>m>>n;
	scanf("%d %d",&m,&n);
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
		{
			scanf("%d",&a[i][j]);
//			cin>>a[i][j];
			dn1[i][j]=dn2[i][j]=-1;
		}
	cout<<din1(m-1,n-1)<<"\n";
	null(m-1,n-1);
	cout<<din2(m-1,n-1)<<"\n";
    return 0;
}
