#include #include #include #include #include using namespace std; #define ll long long #define FOR(i,a,b) for(int i=a;i<=b;i++) #define FORD(i,a,b) for(int i=a;i>=b;i--) #define FORL(i,x) for(int i=head[x];i;i=nxt[i]) #define clr(x,y) memset(x,y,sizeof(x)) #define in(a) a=read() #define out(a) printf("%d\n",a) inline ll read(){ char c=getchar();ll f=1,x=0; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9')x=x*10+(c-'0'),c=getchar(); return x*f; } #define mod 998244353 void MOD(int &x){if(x>=mod)x-=mod;} #define maxn 100010 #define inf (1<<30) int l,nxt[maxn],head[maxn],to[maxn],v[maxn]; void add(int x,int y,int z){l++;nxt[l]=head[x];head[x]=l;to[l]=y;v[l]=z;} ll d[maxn]; int mx[maxn]; int bfs[maxn],u[maxn]; void dij(int X){ int l=1,r=2; mx[X]=0;d[X]=0;bfs[l]=X; while(l