链接: link.
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>p;
int a[10010];
int n = 10005;
int father[10005],father1[10005];
void init(int n) {
for (int i = 1; i <=n; ++i) {
father[i] = i;
father1[i]=i;
}
}
int find1(int u) {
return u == father1[u] ? u : father1[u] = find1(father1[u]);
}
int find(int u) {
return u == father[u] ? u : father[u] = find(father[u]);
}
bool same(int u, int v) {
u = find(u);
v = find(v);
return u == v;
}
int main()
{
int m1,m2;
cin>>n>>m1>>m2;
init(n);
while(m1--)
{
int u,v;
cin>>u>>v;
int x=find(u),y=find(v);
if(x!=y)father[x]=y;
}
while(m2--)
{
int u,v;
cin>>u>>v;
int x=find1(u),y=find1(v);
if(x!=y)father1[x]=y;
}
vector<p>v;
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
int x=find(i),xx=find1(i),y=find(j),yy=find1(j);
if(x!=y&&yy!=xx)
{
father[x]=y;
father1[xx]=yy;
v.push_back(p(i,j));
}
}
}
int cnt=v.size();
cout<<cnt<<endl;
for(int i=0;i<cnt;i++)
{
cout<<v[i].first<<" "<<v[i].second<<endl;
}
}