#include <bits/stdc++.h>
#define pii pair<int,int>
#define ll long long
using namespace std;
const int MAX=1e5+5;
const int LOG=20;
struct UFDS{
int par[MAX],sz[MAX];
UFDS(){
for (int i=0;i<MAX;i++) par[i]=i,sz[i]=0;
}
int qry(int x){
if (x==par[x]) return x;
return par[x]=qry(par[x]);
}
int mrg(int x,int y){
x=qry(x),y=qry(y);
if (x==y) return y;
if (sz[x]>sz[y]) swap(x,y);
if (sz[x]==sz[y]) sz[y]++;
par[x]=y;
return y;
}
} ;
int N,M,Q;
pair<ll,pii> edg[MAX];
int main(){
ios::sync_with_stdio(0);cin.tie(0);
cin>>N>>M>>Q;
assert(N<=2000&&M<=2000&&Q<=2000);
for (int i=0;i<M;i++){
int a,b;ll c;cin>>a>>b>>c;
edg[i]={c,{a,b}};
}
sort(edg,edg+M);
while (Q--){
auto ud=new UFDS();
int x,y;cin>>x>>y;
for (int a=x;a<=y;a++) ud->mrg(x,a);
ll tot=0;
for (int i=0;i<M;i++){
auto [w,pr]=edg[i];
auto [a,b]=pr;
if (ud->qry(a)==ud->qry(b)) continue;
ud->mrg(a,b);
tot+=w;
}
cout<<tot<<'\n';
}
}