#include #include #include #include #include #include #include #include #include #include #include using namespace std; int main(int argc, char const *argv[]) { const int INF = 1e9; int N,M,Q;cin >> N >> M >> Q; map E[N]; for(int i=0;i> a >> b; E[--a][--b] = INF; E[b][a] = INF; } for(int i=0;i> c >> d; E[--c][--d] = i+1; E[d][c] = i+1; } priority_queue> que; vector ans(N+1,0); ans[0] = INF; vector done(N+1,0); que.push({INF,0}); while (que.size()) { auto q = que.top();que.pop(); int c = q.first; int i = q.second; if(done[i])continue; done[i] = true; for(auto p : E[i]) { int j = p.first; int n = p.second; if(ans[j] < min(ans[i],n)) { ans[j] = min(ans[i],n); que.push({ans[j],j}); } } } for(int i=1;i