if(mark[next.x[0]][next.y[0]] == flag)continue;
next.time=oq.time+1;
mark[next.x[0]][next.y[0]]=flag;
for(j=0;j
q.push(next);
}
}
return -1;
}
int main(){
int num=0;
while(cin>>n>>m,n+m){
size=0;
for(int i=0;i
for(int i=0;i
start.x[size]=i;
start.y[size++]=j;
}
}
}
start.time=0;
int temp=BFS(++num);
if(temp == -1)cout<<"Impossible"<
return 0;
}