// 写点什么？

// NOIP 2024
// Dangerise on Luogu 

// T3 T4 完全不会做，也许切掉 T1 T2 已经是我的实力的极限了吧 
// T4 的特殊性质 A 我甚至都打不出来
// 精力问题还是很严重 

// 期望分数 100+100+0+40=240 
// 一等应该稳吧 


#include<bits/stdc++.h>
using namespace std;

#define int long long
#define siz(x) ((int)(x).size()) 
#define me(x,v) memset(x,v,sizeof(x))
#define L(i,l,r) for(int i=(l);i<=(r);i++)
#define R(i,r,l) for(int i=(r);i>=(l);i--)
#define ve(x) vector<x>
#define pa(x,y) pair<x,y>
#define x first
#define y second

char gc(){
	return getchar();
}
void pc(char c){
	putchar(c);
}
void el(){
	pc('\n');
}
int qread(){
	int res=0;
	bool sgn=0;
	char c=gc();
	while(c<'0'||c>'9'){
		sgn|=(c=='-');
		c=gc();
	}
	while(c>='0'&&c<='9'){
		res=res*10+c-'0';
		c=gc();
	}
	return sgn?-res:res;
}

constexpr int N=114514;
struct Q{
	int l,r,k;
};
struct E{
	int v,next;
};

int head[N];
E edge[2*N];
int esize;

void add(int u,int v){
	edge[++esize]={v,head[u]};
	head[u]=esize;
}

int dep[N],fa[N];
int dfn[N],tim;
void dfs(int u){
	dfn[++tim]=u; 
	for(int i=head[u];i;i=edge[i].next){
		int v=edge[i].v;
		if(v==fa[u]){
			continue;
		}
		fa[v]=u;
		dfs(v);
	}
}

signed main(){
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	
	
	return 0;
} 
