#include <cstdio>
int map[1010][1010], DT[1010][1010], n;
inline int min(int a, int b) { return a>b?b:a; }
int f(int a, int b)
{
    if( DT[a][b] == 0 )
    {
        if( a == n-1 && b == n-1 ) DT[a][b] = map[a][b];
        else
        {
            int ans = 0x7fffffff;
            if( a < n-1 ) ans = min(ans,f(a+1,b)+map[a][b]);
            if( b < n-1 ) ans = min(ans,f(a,b+1)+map[a][b]);
            DT[a][b] = ans;
        }
    }
    return DT[a][b];
}
int main()
{
    freopen(".10.in","r",stdin);
    freopen(".10.out","w",stdout);
    scanf("%d", &n);
    for(int i = 0 ; i < n ; i++ ) for( int j = 0 ; j <n ; j++ )
        scanf("%d", &map[i][j]);
    printf("%d", f(0,0));
}
