#include <bits/stdc++.h>
using namespace std ;
int n , m , t , s , e , h , dis[305][305] , a , b ;
int main()
{
memset(dis , 0x3f , sizeof(dis)) ;
cin >> n >> m >> t ;
while(m--)
{
cin >> s >> e >> h ;
dis[s][e] = h ;
}
for(int i = 1 ; i <= n ; i++)
{
dis[i][i] = 0 ;
}
for(int i = 1 ; i <= n ; i++)
{
for(int j = 1 ; j <= n ; j++)
{
for(int k = 1 ; k <= n ; k++)
{
dis[i][j] = min(dis[i][j] , max(dis[i][k] , dis[k][j])) ;
}
}
}
while(t--)
{
cin >> a >> b ;
cout << (dis[a][b] == 0x3f3f3f3f ? -1 : dis[a][b]) << "\n" ;
}
return 0 ;
}