#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;
}