#include<iostream>
using namespace std;
void findH(int,int);
const int N=21;
int vis[N],a[N][N],judge;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&a[i][j]);
vis[0]=1;
findH(n,0);
judge?printf("YES"):printf("NO");
return 0;
}
void findH(int n,int v)
{
if(judge) return;
for(int i=0;i<n;i++)
{
if(!vis[i]&&a[v][i]) vis[i]=1,findH(n,i),vis[i]=0;
else if(a[v][i]&&v!=i) judge=1;
}
}