// Задача "Диагональное преобладание"
// 1-ая личная интернет-олимпиада сезона 2009-2010
// Автор задачи: Владимир Ульянцев, ulyantsev@rain.ifmo.ru
// Автор решения: Владимир Ульянцев, ulyantsev@rain.ifmo.ru

type
    int = longint;
const
    MAXN = 1000;
    MAXX = 1000;
var
    n, i, j, good, sum, t, el : int;
    isDiagonal : boolean;
    
begin
    reset(input, 'diagonal.in');
    rewrite(output, 'diagonal.out');

    read(n);
    assert((1 <= n) and (n <= MAXN));

    isDiagonal := true;
    good := 0;
    for i := 1 to n do begin
        sum := 0;
        for j := 1 to n do begin
            read(t);
            assert((0 <= t) and (t <= MAXX));
            if (i = j) then begin
                el := t;
            end else begin
                sum := sum + t;
            end;
        end;

        if (el < sum) then begin
            isDiagonal := false;
        end else if (el > sum) then begin
            good := good + 1;
        end;
    end;

    if ((not isDiagonal) or (good = 0)) then begin
        writeln('NO');
    end else begin
        writeln('YES');
        writeln(good);
    end;

end.
