#include<bits/stdc++.h>
#include "grader.cpp"
using namespace std;
vector<bool> arefree;
vector<pair<int,int>> G[300000];
int listi[100][100];
void bfs(int start){
    priority_queue<pair<int,int>, vector<pair<int,int>>, greater<>> pr;
    pr.push({start,0});
    listi[start][start]=0;
    while(!pr.empty()){
        auto topi=pr.top();
        pr.pop();
        for(int i=0; i<G[topi.first].size(); i++){
            if(listi[start][G[topi.first][i].first]==-1){
                if(topi.second!=0){
                    listi[start][G[topi.first][i].first]=G[topi.first][i].second^topi.second;
                }
                else{
                    listi[start][G[topi.first][i].first]=G[topi.first][i].second;
                }
                pr.push({G[topi.first][i].first,listi[start][G[topi.first][i].first]});
            }
        }
    }
}
long long int xori(int li, int ri){
    int sum=0;
    for(int i=li; i<=ri; i++){
        if(arefree[i]==true){
            for(int j=i+1; j<=ri; j++){
                if(arefree[j]==true){
                    sum+=listi[i][j];
                }
            }
        }
    }
}
vector<long long int> happy (int N, int Q,
vector<int> u, vector<int> v, vector<int> h,
vector<int> t, vector<int> l, vector<int> r){
    for(int i=0; i<N; i++){
        G[u[i]].push_back({v[i],h[i]});
        G[v[i]].push_back({u[i],h[i]});
    }
    for(int i=0; i<N; i++){
        for(int j=0; j<N; j++){
            listi[i][j]=-1;
        }
    }
    for(int i=0; i<N; i++){
        bfs(i);
    }
    int ti,li,ri;
    vector<long long int> ans;
    for(int i=0; i<Q; i++){
        if(ti==1){
            for(int j=li; j<=ri; j++){
                arefree[j]=true;
            }
        }
        else{
            for(int j=li; j<=ri; j++){
                arefree[j]=false;
            }
        }
        ans.push_back(xori(li,ri));
    }
}
