int@n,@m,@(u,v)--[m],@k,c[n]{}; rep(k){ int@a--; c[a]=1; } graph g; g.setEdge(n,m,u,v); DijkstraHeaph; h.malloc(n*5,1); h.change(0,0); while(h.size){ int a=h.pop(); int v=h.val[a]; int b=a%5; a/=5; rep[g.edge[a]](j,g.es[a]){ int d=c[j]?b+1:0; if(d<5){ h.change(j*5+d,v+1); } } } unsigned z=-1; rep(i,5){ int j=(n-1)*5+i; if(h.visited[j]){ z