#include<iostream>
#include<fstream>
using namespace std;
#define max 1000000000000000000
int main()
{
long long int A[82][82],n;
char ch;
for(int i=0;i<82;i++)
{
A[i][0] = max;
A[0][i] = max;
A[i][81] = max;
A[81][i] = max;
}
ifstream fin("p081_matrix.txt");
for(int i=1;i<=80;i++)
{
for(int j=1;j<=80;j++)
{
fin>>n;
A[i][j] = n;
fin>>ch;
}
}
/*
for(int i=1;i<=80;i++)
{
for(int j=1;j<=80;j++)
{
cout<<A[i][j]<<" ";
}
cout<<endl;
}
*/
for(int i=3;i<=81;i++)
{
for(int j=1;j<i;j++)
{
A [j] [i-j] += min( A [j-1] [i-j] , A [j] [i-j-1] );
// cout<<"Adding minumum of ("<<j-1<<","<<i-j<<") and ("<<j<<","<<i-j-1<<") to ("<<j<<","<<i-j<<")\n";
A [80-j+1] [80-i+j+1] += min( A [80-j+2] [80-i+j+1] , A [80-j+1] [80-i+j+2] );
// cout<<"Adding minumum of ("<<80-j+2<<","<<80-i+j+1<<") and ("<<80-j+1<<","<<80-i+j+2<<") to ("<<80-j+1<<","<<80-i+j+1<<")\n";
}
}
long long int m = max;
for(int i=1;i<=80;i++)
{
if(A[i][80-i+1] < m)
m=A[i][80-i+1];
}
cout<<m;
fin.close();
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGZzdHJlYW0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBtYXggMTAwMDAwMDAwMDAwMDAwMDAwMAoKaW50IG1haW4oKQp7Cglsb25nIGxvbmcgaW50IEFbODJdWzgyXSxuOwoJY2hhciBjaDsKCglmb3IoaW50IGk9MDtpPDgyO2krKykKCXsKCQlBW2ldWzBdID0gbWF4OwoJCUFbMF1baV0gPSBtYXg7CgkJQVtpXVs4MV0gPSBtYXg7CgkJQVs4MV1baV0gPSBtYXg7Cgl9CgoJaWZzdHJlYW0gZmluKCJwMDgxX21hdHJpeC50eHQiKTsKCglmb3IoaW50IGk9MTtpPD04MDtpKyspCgl7CgkJZm9yKGludCBqPTE7ajw9ODA7aisrKQoJCXsKCQkJZmluPj5uOwoJCQlBW2ldW2pdID0gbjsKCQkJZmluPj5jaDsKCgkJfQoJfQovKgoJZm9yKGludCBpPTE7aTw9ODA7aSsrKQoJewoJCWZvcihpbnQgaj0xO2o8PTgwO2orKykKCQl7CgkJCWNvdXQ8PEFbaV1bal08PCIgIjsKCQl9CgkJY291dDw8ZW5kbDsKCX0KKi8KCWZvcihpbnQgaT0zO2k8PTgxO2krKykKCXsKCQlmb3IoaW50IGo9MTtqPGk7aisrKQoJCXsKCQkJQSBbal0gW2ktal0gKz0gbWluKCBBIFtqLTFdIFtpLWpdICwgQSBbal0gW2ktai0xXSApOwovLwkJCWNvdXQ8PCJBZGRpbmcgbWludW11bSBvZiAoIjw8ai0xPDwiLCI8PGktajw8IikgYW5kICgiPDxqPDwiLCI8PGktai0xPDwiKSB0byAoIjw8ajw8IiwiPDxpLWo8PCIpXG4iOwoJCQlBIFs4MC1qKzFdIFs4MC1pK2orMV0gKz0gbWluKCBBIFs4MC1qKzJdIFs4MC1pK2orMV0gLCBBIFs4MC1qKzFdIFs4MC1pK2orMl0gKTsKLy8JCQljb3V0PDwiQWRkaW5nIG1pbnVtdW0gb2YgKCI8PDgwLWorMjw8IiwiPDw4MC1pK2orMTw8IikgYW5kICgiPDw4MC1qKzE8PCIsIjw8ODAtaStqKzI8PCIpIHRvICgiPDw4MC1qKzE8PCIsIjw8ODAtaStqKzE8PCIpXG4iOwoJCX0KCX0KCglsb25nIGxvbmcgaW50IG0gPSBtYXg7CgoJZm9yKGludCBpPTE7aTw9ODA7aSsrKQoJewoJCWlmKEFbaV1bODAtaSsxXSA8IG0pCgkJCW09QVtpXVs4MC1pKzFdOwoJfQoKCWNvdXQ8PG07CgkKCWZpbi5jbG9zZSgpOwp9