#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <string>#include <set>#include <ctime>#include <cmath>#include <cctype>usingnamespacestd;
#define MAX 100005constint INF = 1000001;
#define LL long longint cas=1,T;
int d[105][105];
int main()
{
int n,m,c;
while (scanf("%d%d%d",&n,&m,&c) && n)
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
{
d[i][i]=0;
d[i][j]=INF;
}
for (int i = 1;i<=m;i++)
{
int f,t,di;
scanf("%d%d%d",&f,&t,&di);
d[f][t]=di;
d[t][f]=di;
}
for (int k=1;k<=n;k++)
for (int i = 1;i<=n;i++)
for (int j = 1;j<=n;j++)
d[i][j]=min(d[i][j],max(d[i][k],d[k][j]));
if (cas!=1)
printf("\n"); //注意输出格式printf("Case #%d\n",cas++);
for (int i = 0;i<c;i++)
{
int s,e;
scanf("%d%d",&s,&e);
if (d[s][e]==INF)
printf("no path\n");
elseprintf("%d\n",d[s][e]);
}
}
//freopen("in","r",stdin);//scanf("%d",&T);//printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC);return0;
}