#include<stdio.h>
#include<malloc.h>
#include<stdbool.h>
int main(void)
{
int n;
int **num;
bool ismatri=true;//设置一个变量用于判断是否是上三角矩阵
scanf("%d",&n);
num=(int **)malloc(sizeof(int *)*n);
for(int i=0;i<n;i++)
num[i]=(int *)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
scanf("%d",&num[i][j]);
for(int i=1;i<n;i++)//经过观察发现,主对角线以下的部分为从第2行开始到n
{
for(int j=0;j<i;j++)//而列则从第0列开始到n-1并且具有j<i的特点,总结起来就是j<i即可
{
if(num[i][j]!=0)
{
ismatri=false;
break;
}
}
if(!ismatri)
break;
}
if(ismatri)
printf("YES");
else
printf("NO");
return 0;
}