#include <stdlib.h>
#include <assert.h>


void juge(int* p, int n)
{
    int i,j,flag;
    flag = 0;
    for(i = 0; i < n * n; i++)
    {
        scanf("%d ", &p[i]);
    }
    for(i = 0; i < n; i++)
    {
        for(j = n * i; j < (n + 1) * i; j++)   //每行开头位置n * i,对角线位置(n + 1) * i
        {
            if(p[j] != 0)
            {
                flag = 1;
            }
        }
    }
    if(1 == flag)
    {
        printf("NO\n");
    }
    else
    {
        printf("YES\n");
    }
}

int main()
{
    int n;
    int *p;
    scanf("%d ", &n);
    p = (int*)malloc((n * n) * sizeof(int));
    juge(p, n);
    free(p);
    p = NULL;
}