// #include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
bool hasPathHelper(int **arr,int n,int** path,int x,int y){
if(x<0 || y<0|| x>=n || y>=n || path[x][y]==1 || arr[x][y]==0){
return false;
}
if(x==n-1 && y==n-1){
return true;
}
path[x][y] =1;
if(hasPathHelper(arr,n,path,x+1,y))
return true;
if(hasPathHelper(arr,n,path,x-1,y))
return true;
if(hasPathHelper(arr,n,path,x,y+1))
return true;
if(hasPathHelper(arr,n,path,x,y-1))
return true;
path[x][y] = 0;
return false;
}
bool hasPath(int **arr,int n){
int **path = new int*[n];
for(int i=0;i<n;i++){
path[i] = new int[n];
for(int j=0;j<n;j++){
path[i][j]=0;
}
}
return hasPathHelper(arr,n,path,0,0);
}
int main(){
int n;
int **arr = new int*[n];
for(int i=0;i<n;i++){
arr[i] = new int[n];
for(int j=0;j<n;j++){
cin >> arr[i][j];
}
}
cout<< hasPath(arr,n);
}
Ly8gI2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgaGFzUGF0aEhlbHBlcihpbnQgKiphcnIsaW50IG4saW50KiogcGF0aCxpbnQgeCxpbnQgeSl7CglpZih4PDAgfHwgeTwwfHwgeD49biB8fCB5Pj1uIHx8IHBhdGhbeF1beV09PTEgfHwgYXJyW3hdW3ldPT0wKXsKCQlyZXR1cm4gZmFsc2U7Cgl9CglpZih4PT1uLTEgJiYgeT09bi0xKXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXBhdGhbeF1beV0gPTE7CglpZihoYXNQYXRoSGVscGVyKGFycixuLHBhdGgseCsxLHkpKQoJCXJldHVybiB0cnVlOwoJaWYoaGFzUGF0aEhlbHBlcihhcnIsbixwYXRoLHgtMSx5KSkKCQlyZXR1cm4gdHJ1ZTsKCWlmKGhhc1BhdGhIZWxwZXIoYXJyLG4scGF0aCx4LHkrMSkpCgkJcmV0dXJuIHRydWU7CglpZihoYXNQYXRoSGVscGVyKGFycixuLHBhdGgseCx5LTEpKQoJCXJldHVybiB0cnVlOwoJcGF0aFt4XVt5XSA9IDA7CglyZXR1cm4gZmFsc2U7Cn0KCgpib29sIGhhc1BhdGgoaW50ICoqYXJyLGludCBuKXsKCWludCAqKnBhdGggPSBuZXcgaW50KltuXTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCXBhdGhbaV0gPSBuZXcgaW50W25dOwoJCWZvcihpbnQgaj0wO2o8bjtqKyspewoJCQlwYXRoW2ldW2pdPTA7CgkJfQoJfQoJcmV0dXJuIGhhc1BhdGhIZWxwZXIoYXJyLG4scGF0aCwwLDApOwp9CgppbnQgbWFpbigpewoJaW50IG47CglpbnQgKiphcnIgPSBuZXcgaW50KltuXTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWFycltpXSA9IG5ldyBpbnRbbl07CgkJZm9yKGludCBqPTA7ajxuO2orKyl7CgkJCWNpbiA+PiBhcnJbaV1bal07CgkJfQoJfQoJY291dDw8IGhhc1BhdGgoYXJyLG4pOwp9