/** * author: t9unkubj * created: 2024-03-15 */ #include #ifdef t9unkubj #define _GLIBCXX_DEBUG #define dbg(x) cout<<__LINE__<<" "<<#x<<":="< //using namespace atcoder; int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); int n,m; cin>>n>>m; vectora(m); for(int i=0;i>a[i],a[i]--; vector>>g(n*(m+1)); for(int i=0;i; priority_queue,greater>que; vectormd(n*(m+1),1<<30); md[n*m]=0; que.push({0,n*m}); while(que.size()){ auto [p,q]=que.top();que.pop(); if(p!=md[q])continue; for(auto [x,w]:g[q]){ if(md[x]>p+w)md[x]=p+w,que.push({md[x],x}); } for(int i=q/n*n;ip+abs((i)-q))md[i]=p+abs((i)-q),que.push({md[i],i}); } } for(int i=1;i