import java.util.ArrayList;
import java.util.List;


public class prog {

    static ArrayList<ArrayList<Integer>> seats = new ArrayList<>();
    static ArrayList<ArrayList<Integer>> visited = new ArrayList<>();
    static int currentX;
    static int currentY;
    static int currentMax = -1000;
    static int seatMax = 0;
    static int n;
    static int food=0;

    public static void main(String[] args) {
        // write your code here

        java.util.Scanner scan = new java.util.Scanner(System.in);
        n = scan.nextInt();

        for (int i = 0; i < n; i++) {
            seats.add(new ArrayList<>());
            visited.add(new ArrayList<>());
            for (int j = 0; j < n; j++) {
                seats.get(i).add(scan.nextInt());
                visited.get(i).add(0);
            }
        }

        for (int i = 0; i < n; i++) {
            if (currentMax < seats.get(0).get(i)) {
                currentMax = seats.get(0).get(i);
                seatMax = i;
            }
        }
        visited.get(0).add(seatMax, currentMax);
        currentX = 0;
        currentY = seatMax;
        food=seats.get(0).get(currentY);

        while (canMove()) {
            int left = -1000;
            int right = -1000;
            int down = -1000;
            int max;
            if (currentY > 0)
                left=seats.get(currentX).get(currentY - 1);
            if (currentY<n-1)
                right=seats.get(currentX).get(currentY + 1);
            if(currentX<n-1)
                down=seats.get(currentX+1).get(currentY );
            max=Math.max(left,Math.max(down,right));
            if(max==left){
                visited.get(currentX).add(currentY-1,1);
                currentY=currentY-1;
            }
            else if(max==down){
                visited.get(currentX+1).add(currentY,1);
            }
            else if(max==right){
                visited.get(currentX).add(currentY+1,1);
                currentY=currentY+1;
            }

            food+=max;

            }

        System.out.println(food);

        }



    public static boolean canMove() {

        if (currentX == n - 1) {
            if (currentY > 0)
                if (visited.get(n - 1).get(currentY - 1) == 0) {
                    return true;
                } else if (currentY < n - 1)
                    if (visited.get(n - 1).get(currentY + 1) == 0) {
                        return true;
                    }
            return false;
        }
        return true;
    }

}