#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
const int inf=LONG_LONG_MAX;
int h[N],val[N],to[N],nxt[N],dis[N],vis[N];
int n,m,q,cnt,id;
unordered_map<string,int> a;
inline void add(int u,int v,int w){
to[++cnt]=v;
val[cnt]=w;
nxt[cnt]=h[u];
h[u]=cnt;
}
inline void init(){
for(int i=1;i<=n;i++){
dis[i]=inf;
}
memset(vis,0,sizeof(vis));
}
inline void spfa(int x){
queue<int> q;
init();
dis[x]=0;
q.push(x);
while(!q.empty()){
int now=q.front();
q.pop();
if(vis[now])
continue;
vis[now]=1;
for(int i=h[now];i;i=nxt[i]){
int v=to[i];
if(dis[v]>dis[now]+val[i]){
dis[v]=dis[now]+val[i];
q.push(v);
}
}
}
}
signed main(){
scanf("%lld%lld",&n,&m);
for(int i=1,t;i<=m;i++){
string x,y;
cin>>x>>y>>t;
if(!a[x])
a[x]=++id;
if(!a[y])
a[y]=++id;
add(a[x],a[y],t);
}
scanf("%lld",&q);
while(q--){
string x,y;
cin>>x>>y;
spfa(a[x]);
if(dis[a[y]]==inf)
printf("Roger\n");
else
printf("%lld\n",dis[a[y]]);
}
return 0;
}