#include <stdio.h> #include <algorithm> using namespace std; const int INF = 987654321; int n, m, q, u, v, w, D[310][310]; int main() { scanf("%d%d%d", &n, &m, &q); for (int i = 0 ; i < n ; ++i) { for (int j = 0 ; j < n ; ++j) { D[i][j] = (i == j) ? 0 : INF; } } while (m--) { scanf("%d%d%d", &u, &v, &w); D[u - 1][v - 1] = min(D[u - 1][v - 1], w); } for (int k = 0 ; k < n ; ++k) { for(int i = 0 ; i < n ; ++i) { for (int j = 0 ; j < n ; ++j) { D[i][j] = min(D[i][j], max(D[i][k], D[k][j])); } } } while (q--) { scanf("%d%d", &u, &v); printf("%d\n", D[u - 1][v - 1] == INF ? -1 : D[u - 1][v - 1]); } }