#include<bits/stdc++.h>
using namespace std;
char in[100], out[100];

int n, m, A[30][30], ans;
void f(int x, int y, int s){
	if(x==n+1){
		ans = max(ans, s);
		return;
	}
	if(y-1>0) f(x+1,y-1,s+A[x][y]);
	if(y+1<=m) f(x+1,y+1,s+A[x][y]);
}
int main(){
	int i, j;
	for(int I=1;I<=20;I++){
		ans = 0;
		sprintf(in,".%d.in",I);
	    freopen(in,"w",stdout);
		//scanf("%d %d", &n, &m);
		n = rand()%10+I;
		m = rand()%10+I;
		n = min(n,20);
		m = min(m,20);
		printf("%d %d\n",n, m);
		for(i=1;i<=n;i++) for(j=1;j<=m;j++){
			//scanf("%d", &A[i][j]);
			A[i][j] = rand()%100+1;	
			printf("%d", A[i][j]);
			if(j==m) printf("\n");
			else printf(" ");
		} 		
		for(i=1;i<=m;i++){
			f(1,i, 0);
		}
		sprintf(in,".%d.out",I);
	    freopen(in,"w",stdout);
		printf("%d", ans);
	}
}
