#include<bits/stdc++.h>
using namespace std;
struct A{
int x,y,si,b;
}d[10005];
int main(){
bool flag[105][105]={};
int head=0,tail=1,n,m,a[105][105]={};
int dx[8]={0,0,1,-1,1,-1,1,-1},dy[8]={1,-1,0,0,1,-1,-1,1};
cin>>m>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
d[1].x=1;
d[1].y=1;
d[1].si=-1;
d[1].b=0;
flag[1][1]=1;
while(head<tail){
head++;
for(int i=0;i<8;i++){
if(i==d[head].si)continue;
int xxx=d[head].x+dx[i]*a[d[head].x][d[head].y];
int yyy=d[head].y+dy[i]*a[d[head].x][d[head].y];
if(0<xxx&&xxx<=n&&0<yyy&&yyy<=m&&flag[xxx][yyy]==0){
flag[xxx][yyy]=1;
tail++;
d[tail].x=xxx;
d[tail].y=yyy;
d[tail].si=i;
d[tail].b=d[head].b+1;
if(xxx==n&&yyy==m){
cout<<d[tail].b;
return 0;
}
}
}
}
cout<<"NEVER";
return 0;
}