#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned int ui; const ll mod = 1000000007; const ll INF = (ll)1000000007 * 1000000007; typedef pair P; #define stop char nyaa;cin>>nyaa; #define rep(i,n) for(int i=0;i=0;i--) #define Rep(i,sta,n) for(int i=sta;i=sta;i--) #define rep1(i,n) for(int i=1;i<=n;i++) #define per1(i,n) for(int i=n;i>=1;i--) #define Rep1(i,sta,n) for(int i=sta;i<=n;i++) typedef long double ld; const ld eps = 1e-8; const ld pi = acos(-1.0); typedef pair LP; int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; template struct Kruskal{ struct edge{ int from,to; T cost; int used; edge(int from,int to,T cost): from(from),to(to),cost(cost),used(0){} bool operator<(const edge& e) const{ return cost r,p; vector es; vector>> G; Kruskal(){} Kruskal(int n):r(n,1),p(n),G(n){ iota(p.begin(),p.end(),0); } int find(int x){ return (x==p[x]?x:p[x]=find(p[x])); } bool same(int x,int y){ return find(x)==find(y); } void unite(int x,int y){ x=find(x);y=find(y); if(x==y) return; if(r[x]>> graph(){ return G; } }; int l,r; void solve(){ cin >> l >> r; Kruskal Kru(r-l+1); rep(i,r-l+1){ int t=i+l; if(t