#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<vector>#include<unordered_map>#include<unordered_set>#include<set>#include<map>#defineendl'\n'#defineIOSios::sync_with_stdio(false); cin.tie(0); cout.tie(0)usingnamespace std;constdouble pi =acos(-1);typedeflonglong ll;//8.18constint N =1e3+10;int p1[N], p2[N];intfind1(int x){if(p1[x]!= x) p1[x]=find1(p1[x]);return p1[x];}intfind2(int x){if(p2[x]!= x) p2[x]=find2(p2[x]);return p2[x];}voidsolve(){int n, m1, m2;cin >> n >> m1 >> m2;for(int i =1; i <= n; i ++) p1[i]= i, p2[i]= i;for(int i =1; i <= m1; i ++){int u, v;cin >> u >> v;u =find1(u), v =find2(v);if(u != v) p1[u]= v;}for(int i =1; i <= m2; i ++){int u, v;cin >> u >> v;u =find2(u), v =find2(v);if(u != v) p2[u]= v;}vector<pair<int,int>> ve;for(int i =1; i <= n; i ++)for(int j = i +1; j <= n; j ++)if(find1(i)!=find1(j)&&find2(i)!=find2(j)){p1[find1(i)]=find1(j);p2[find2(i)]=find2(j);ve.push_back({i, j});}cout << ve.size()<< endl;for(int i =0; i < ve.size(); i ++) cout << ve[i].first <<" "<< ve[i].second << endl;}intmain(){IOS;// int T;// cin >> T;//// while (T -- )// {// solve();// }solve();return0;}