#include <iostream>
#include <cstdio>
#include <map>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
//英语 看博友分析 抄博友程序 floyd实现
int g[50][50];
int inf=0x3f3f3f3f;
int main()
{
int T;
cin>>T;
cout<<"SHIPPING ROUTES OUTPUT"<<endl<<endl;
int tag=0;
while(T--)
{
tag++;
cout<<"DATA SET "<<tag<<endl<<endl;
int n,m,o;
cin>>n>>m>>o;
map<string,int> mp;
mp.clear();
for(int i=0;i<n;i++)
{
string s;
cin>>s;
mp[s]=i+1;
}
memset(g,0x3f,sizeof(g));
for(int j=0;j<m;j++)
{
string x,y;
cin>>x>>y;
g[mp[x]][mp[y]]=g[mp[y]][mp[x]]=1;
}
for(int k=1;k<=n;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
}
}
}
for(int i=0;i<o;i++)
{
int time;
string x,y;
cin>>time>>x>>y;
if(g[mp[x]][mp[y]]==inf)
{
cout<<"NO SHIPMENT POSSIBLE"<<endl;
}else
{
cout<<"$"<<time*100*g[mp[x]][mp[y]]<<endl;
}
}
cout<<endl;
}
cout<<"END OF OUTPUT"<<endl;
return 0;
}