#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define nl '\n'
#define fu(i,a,b) for(int i=a; i<=b; i++)
#define fd(i,a,b) for(int i=a; i>=b; i--)
#define BIT(i, n) (((n) >> (i)) & 1)
#define SZ(s) ((int)(s.size()))
#define pb push_back
#define eb emplace_back
#define pii pair<int, int>
#define all(v) v.begin(), v.end()
#define ff first
#define ss second
#define ins insert
int t,n,m,q,k;
const int N = 1e5+5;
const int MOD = 1e9+7;
const int inf = 1e9+7;
const int base = 311;
const int nr = 505;
void add(int &a, int b){a+=b; if(a>=MOD) a-=MOD;}
void sub(int &a, int b){a-=b; if(a<0) a+=MOD;}
pii edges[5*N];
vector<pii> adj[N];
vector<int> dsk[N];
int par[N][18], h[N], low[N], num[N], scc[N];
int timedfs, cnt;
stack<int> st;
void dfs(int u, int id){
num[u] = low[u] = ++timedfs;
st.push(u);
for(pii it: adj[u]){
if(it.ss == id) continue;
if(!num[it.ff]){
dfs(it.ff, it.ss);
low[u] = min(low[u], low[it.ff]);
}else low[u] = min(low[u], num[it.ff]);
}
if(num[u] == low[u]){
int v=-1;
++cnt;
while(v!=u){
v = st.top();
st.pop();
scc[v] = cnt;
low[v] = num[v] = inf;
}
}
}
void dfs_tree(int u, int p){
for(int v: dsk[u]){
if(v==p) continue;
h[v] = h[u]+1;
par[v][0] = u;
for(int i=1; (1<<i) <= h[v]; i++)
par[v][i] = par[par[v][i-1]][i-1];
dfs_tree(v, u);
}
}
int LCA(int u, int v){
if(h[u]<h[v]) swap(u,v);
int dis=h[u]-h[v];
for(int i=0; (1<<i)<=dis; i++)
if(BIT(i, dis))
u=par[u][i];
if(u==v) return u;
int lg=__lg(h[u]);
fd(i,lg,0)
if(par[u][i]!=par[v][i])
u=par[u][i], v=par[v][i];
return par[u][0];
}
void build_tree(){
fu(i,1,m)
if(scc[edges[i].ff] != scc[edges[i].ss]){
dsk[scc[edges[i].ff]].eb(scc[edges[i].ss]);
dsk[scc[edges[i].ss]].eb(scc[edges[i].ff]);
}
}
int calc(int u, int v){
return h[u] + h[v] - 2*h[LCA(u,v)];
}
void nhap(){
cin >> n >> m >> q;
fu(i,1,m){
int u,v;
cin >> u >> v;
edges[i] = {u, v};
if(u==v) continue;
adj[u].eb(v, i);
adj[v].eb(u, i);
}
dfs(1,0);
build_tree();
dfs_tree(1,0);
while(q--){
int u,v,w;
cin >> u >> v >> w;
u = scc[u];
v = scc[v];
w = scc[w];
int x = ((LCA(u,v)^LCA(u,w))^(LCA(v,w)));
cout << calc(x,u) + calc(x,v) + calc(x,w) << nl;
}
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if(fopen("quan.inp", "r")){
freopen("quan.inp", "r", stdin);
freopen("quan.out", "w", stdout);
}
nhap();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIG5sICdcbicKI2RlZmluZSBmdShpLGEsYikgZm9yKGludCBpPWE7IGk8PWI7IGkrKykKI2RlZmluZSBmZChpLGEsYikgZm9yKGludCBpPWE7IGk+PWI7IGktLSkKI2RlZmluZSBCSVQoaSwgbikgKCgobikgPj4gKGkpKSAmIDEpCiNkZWZpbmUgU1oocykgKChpbnQpKHMuc2l6ZSgpKSkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBlYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBwaWkgcGFpcjxpbnQsIGludD4KI2RlZmluZSBhbGwodikgdi5iZWdpbigpLCB2LmVuZCgpCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBpbnMgaW5zZXJ0CgppbnQgdCxuLG0scSxrOwoKY29uc3QgaW50IE4gPSAxZTUrNTsKY29uc3QgaW50IE1PRCA9IDFlOSs3Owpjb25zdCBpbnQgaW5mID0gMWU5Kzc7CmNvbnN0IGludCBiYXNlID0gMzExOwpjb25zdCBpbnQgbnIgPSA1MDU7CnZvaWQgYWRkKGludCAmYSwgaW50IGIpe2ErPWI7IGlmKGE+PU1PRCkgYS09TU9EO30Kdm9pZCBzdWIoaW50ICZhLCBpbnQgYil7YS09YjsgaWYoYTwwKSBhKz1NT0Q7fQoKcGlpIGVkZ2VzWzUqTl07CnZlY3RvcjxwaWk+IGFkaltOXTsKdmVjdG9yPGludD4gZHNrW05dOwppbnQgcGFyW05dWzE4XSwgaFtOXSwgbG93W05dLCBudW1bTl0sIHNjY1tOXTsKaW50IHRpbWVkZnMsIGNudDsKc3RhY2s8aW50PiBzdDsKCgp2b2lkIGRmcyhpbnQgdSwgaW50IGlkKXsKICAgIG51bVt1XSA9IGxvd1t1XSA9ICsrdGltZWRmczsKICAgIHN0LnB1c2godSk7CiAgICBmb3IocGlpIGl0OiBhZGpbdV0pewogICAgICAgIGlmKGl0LnNzID09IGlkKSBjb250aW51ZTsKICAgICAgICBpZighbnVtW2l0LmZmXSl7CiAgICAgICAgICAgIGRmcyhpdC5mZiwgaXQuc3MpOwogICAgICAgICAgICBsb3dbdV0gPSBtaW4obG93W3VdLCBsb3dbaXQuZmZdKTsKICAgICAgICB9ZWxzZSBsb3dbdV0gPSBtaW4obG93W3VdLCBudW1baXQuZmZdKTsKICAgIH0KICAgIGlmKG51bVt1XSA9PSBsb3dbdV0pewogICAgICAgIGludCB2PS0xOwogICAgICAgICsrY250OwogICAgICAgIHdoaWxlKHYhPXUpewogICAgICAgICAgICB2ID0gc3QudG9wKCk7CiAgICAgICAgICAgIHN0LnBvcCgpOwogICAgICAgICAgICBzY2Nbdl0gPSBjbnQ7CiAgICAgICAgICAgIGxvd1t2XSA9IG51bVt2XSA9IGluZjsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgZGZzX3RyZWUoaW50IHUsIGludCBwKXsKICAgIGZvcihpbnQgdjogZHNrW3VdKXsKICAgICAgICBpZih2PT1wKSBjb250aW51ZTsKICAgICAgICBoW3ZdID0gaFt1XSsxOwogICAgICAgIHBhclt2XVswXSA9IHU7CiAgICAgICAgZm9yKGludCBpPTE7ICgxPDxpKSA8PSBoW3ZdOyBpKyspCiAgICAgICAgICAgIHBhclt2XVtpXSA9IHBhcltwYXJbdl1baS0xXV1baS0xXTsKICAgICAgICBkZnNfdHJlZSh2LCB1KTsKICAgIH0KfQoKaW50IExDQShpbnQgdSwgaW50IHYpewogICAgaWYoaFt1XTxoW3ZdKSBzd2FwKHUsdik7CiAgICBpbnQgZGlzPWhbdV0taFt2XTsKICAgIGZvcihpbnQgaT0wOyAoMTw8aSk8PWRpczsgaSsrKQogICAgICAgIGlmKEJJVChpLCBkaXMpKSAKICAgICAgICAgICAgdT1wYXJbdV1baV07CiAgICBpZih1PT12KSByZXR1cm4gdTsKICAgIGludCBsZz1fX2xnKGhbdV0pOwogICAgZmQoaSxsZywwKQogICAgICAgIGlmKHBhclt1XVtpXSE9cGFyW3ZdW2ldKQogICAgICAgICAgICB1PXBhclt1XVtpXSwgdj1wYXJbdl1baV07CiAgICByZXR1cm4gcGFyW3VdWzBdOwp9Cgp2b2lkIGJ1aWxkX3RyZWUoKXsKICAgIGZ1KGksMSxtKSAKICAgICAgICBpZihzY2NbZWRnZXNbaV0uZmZdICE9IHNjY1tlZGdlc1tpXS5zc10pewogICAgICAgICAgICBkc2tbc2NjW2VkZ2VzW2ldLmZmXV0uZWIoc2NjW2VkZ2VzW2ldLnNzXSk7CiAgICAgICAgICAgIGRza1tzY2NbZWRnZXNbaV0uc3NdXS5lYihzY2NbZWRnZXNbaV0uZmZdKTsKICAgICAgICB9Cn0KCmludCBjYWxjKGludCB1LCBpbnQgdil7CiAgICByZXR1cm4gaFt1XSArIGhbdl0gLSAyKmhbTENBKHUsdildOwp9Cgp2b2lkIG5oYXAoKXsKICAgIGNpbiA+PiBuID4+IG0gPj4gcTsKICAgIGZ1KGksMSxtKXsKICAgICAgICBpbnQgdSx2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgZWRnZXNbaV0gPSB7dSwgdn07CiAgICAgICAgaWYodT09dikgY29udGludWU7CiAgICAgICAgYWRqW3VdLmViKHYsIGkpOwogICAgICAgIGFkalt2XS5lYih1LCBpKTsKICAgIH0KICAgIGRmcygxLDApOwogICAgYnVpbGRfdHJlZSgpOwogICAgZGZzX3RyZWUoMSwwKTsKICAgIHdoaWxlKHEtLSl7CiAgICAgICAgaW50IHUsdix3OwogICAgICAgIGNpbiA+PiB1ID4+IHYgPj4gdzsKICAgICAgICB1ID0gc2NjW3VdOwogICAgICAgIHYgPSBzY2Nbdl07CiAgICAgICAgdyA9IHNjY1t3XTsKICAgICAgICBpbnQgeCA9ICgoTENBKHUsdileTENBKHUsdykpXihMQ0Eodix3KSkpOwogICAgICAgIGNvdXQgPDwgY2FsYyh4LHUpICsgY2FsYyh4LHYpICsgY2FsYyh4LHcpIDw8IG5sOwogICAgfQp9CgppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgaWYoZm9wZW4oInF1YW4uaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3BlbigicXVhbi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJxdWFuLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIG5oYXAoKTsKfQo=