#include int map[1000][1000]; int w,h,n; main(){ int i,j,k,m,x,y,f,t,vx,vy,v,u,c; int ada[1000]; int open[1000][2]; int close[1000]; int iopen=0,iclose=0; scanf("%d%d%d",&w,&h,&n); for (x=0;x0){ if (t-f>=w){ vx=0;vy=1;v=8;u=2; }else{ vx=1;vy=0;v=4;u=1; } }else{ if (t-f<=-w){ vx=0;vy=-1;v=2;u=8; }else{ vx=-1;vy=0;v=1;u=4; } } //printf("%d\n",-1); while (1){ //printf("%d,%d %d\n",f%w,f/w,v); map[f%w][f/w]|=v; f+=vx+vy*w; //printf("%d,%d %d\n",f%w,f/w,u); map[f%w][f/w]|=u; if (f==t) break; } } } //for (y=0;y0){ i=open[--iopen][0]; x=i%w; y=i/w; c=open[iopen][1]; v=map[x][y]; if (x==w-1&&y==h-1){printf("%d\n",c);exit(0);} for (j=0;j