#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define mp make_pair
#define pb push_back
using namespace std;
ifstream fin("radiatie.in");
ofstream fout("radiatie.out");
vector <pair<int , pair<int ,int> > >v;
vector <pair<int,int> > w[15002];
vector <pair<pair<int,int> ,pair<int,int> > >noduri,copie;
pair<pair<int,int> ,pair<int,int> >aux;
int n,m,k,p[15002],s,maxi,cont,cont2,r[15002];
bool wayToSort(pair<pair<int,int> ,pair<int,int> > i,pair<pair<int,int> ,pair<int,int> > j)
{
return( i.first.first*100000+i.first.second<j.first.first*100000+j.first.second);
}
void citire()
{
fin>>n>>m>>k;
for(int i=0;i<m;i++)
{
int a,b,c;
fin>>a>>b>>c;
v.pb(mp(c,mp(a,b)));
}
for(int i=0;i<k;i++)
{
int a,b;
fin>>a>>b;
if(a<b)
{
noduri.pb(mp(mp(a,b),mp(0,i)));
copie.pb(mp(mp(a,b),mp(0,i)));
}
else
{
noduri.pb(mp(mp(b,a),mp(0,i)));
copie.pb(mp(mp(b,a),mp(0,i)));
}
}
}
int findx(int x){
if(p[x]<0)
return x;
else
return x=findx(p[x]);
}
void unionx(int a,int b )
{
int parenta=findx(a);
int parentb=findx(b);
if(p[parenta]>p[parentb])
p[parenta]=parentb;
else if(p[parenta]<p[parentb])
p[parentb]=parenta;
else{
p[parenta]=parentb;
p[parentb]--;
}
}
void APM()
{
int t=0;
sort(v.begin(),v.end());
for(int i=1;i<=n;i++)
p[i]=-1;
for(int i=0;i<m;i++)
{
int x=findx(v[i].second.first);
int y=findx(v[i].second.second);
if(x!=y)
{
unionx(v[i].second.first,v[i].second.second);
w[v[i].second.first].pb(mp(v[i].second.second,v[i].first));
w[v[i].second.second].pb(mp(v[i].second.first,v[i].first));
t+=2;
}
if(t/2==n-1)
break;
}
}
void DFS(int nod,int maxx)
{
p[nod]++;
for(int i=0;i<w[nod].size();i++)
{
int ok=w[nod][i].second;
int aux=w[nod][i].first;
if(p[aux]<p[nod])
{
if(maxx>ok)
ok=maxx;
r[aux]=ok;
DFS(aux,ok);
}
}
}
void calcDist()
{
for(int i=1;i<=n;i++)
p[i]=0;
sort(noduri.begin(),noduri.end(),wayToSort);
for(int j=0;j<k;j++)
{
maxi=noduri[j].first.first;
DFS(maxi,0);
while(j<k && noduri[j].first.first==maxi)
{
copie[noduri[j].second.second].second.first=r[noduri[j].first.second];
j++;
}
j--;
}
}
void afisare()
{
for(int i=0;i<k;i++)
{
fout<<copie[i].second.first<<'\n';
}
}
int main()
{
citire();
APM();
calcDist();
afisare();
return 0;
}