#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define NN 1005
vector<int> adj[NN];
int gez[NN][2];
void dfs(int x,int kim,int &l,int &r){
if(gez[x][kim])return;
if(kim==0&&x<l)return;
if(kim==1&&x>r)return;
gez[x][kim]=1;
for(auto u:adj[x]){
if(gez[u][kim])continue;
dfs(u,kim,l,r);
}
if(l<=x&&x<=r&&kim!=1){
gez[x][1]=1;
for(auto u:adj[x]){
if(gez[u][1])continue;
dfs(u,1,l,r);
}
}
}
vector<int> check_validity(int N, vector<int> X, vector<int> Y, vector<int> S, vector<int> E,vector<int> L, vector<int> R) {
for(int i=0;i<=N;i++)adj[i].clear();
for(int i=0;i<X.size();i++){
adj[X[i]].pb(Y[i]);
adj[Y[i]].pb(X[i]);
}
vector<int> ans;
for(int test=0;test<S.size();test++){
int s=S[test],hed=E[test],l=L[test],r=R[test];
if(s<l){
ans.pb(0);continue;
}
for(int i=0;i<=N;i++){gez[i][0]=gez[i][1]=0;}
dfs(s,0,l,r);
ans.pb(gez[hed][1]);
}
return ans;
}