graph g; int@n,@m,@(u,v)[m]; g.setDirectEdge(n+1,m,u,v); ll a=g.getDist(1,n-1); ll b=g.getDist(n-1,n); ll c=g.getDist(n,1); ll d=g.getDist(1,n); ll e=g.getDist(n,n-1); ll f=g.getDist(n-1,1); wt((a|b|c)<0?-1:min(a+b+c,d+e+f));