ll fe[512][512]; { ll @n,@m; rep(m){ ll @h,@w,@c; fe[h][w]=c; } DijkstraHeap h; ll hs=1<<19; h.walloc(hs); h.init(hs); h.change(1<<10|1<<1|0,0); while(h.size){ ll a=h.pop(); ll v=h.val[a]; ll y=a>>10; ll x=a>>1&(511); if(a&1){ if(y>1){ h.change(a-(1<<10),v+fe[y-1][x]+1); } if(y1){ h.change(a-(1<<1),v+fe[y][x-1]+1); } if(x1){ h.change(a-(1<<10),v+fe[y-1][x]+1); h.change(a-(1<<10)+1,v+1); } if(y1){ h.change(a-(1<<1),v+fe[y][x-1]+1); h.change(a-(1<<1)+1,v+1); } if(x