/*
* Author: Geeza
*/
#include <bits/stdc++.h>
#define ld long double
#define ll long long
#define pb push_back
#define fin(a, n) for(int i = a; i < n; i++)
#define fjn(a, n) for(int j = a; j < n; j++)
#define all(a) a.begin(),a.end()
#define allr(a) a.rbegin(),a.rend()
#define FAST ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;
const double PI = acos(-1);
const int N = 1e5+20;
const ll oo = 0x3f3f3f3f3f3f3f3f;
const int MOD = 1000000007, inf = 1e6;
string di[] = {"D","L", "U", "R", "UL", "UR", "DL", "DR"};
int dx[] = {+1, +0, +0, -1, -1, -1, +1, +1};
int dy[] = {+0, -1, +1, +0, -1, +1, -1, +1};
char dc[] = {'D', 'L', 'R', 'U'};
struct DSU {
vector<int> parent, size;
ll tot;
DSU(int n) : parent(n + 1), size(n + 1, 1) {
iota(parent.begin(), parent.end(), 0);
tot = n;
}
int find(int x) {
if (x == parent[x]) return x;
return parent[x] = find(parent[x]);
}
bool unite(int x, int y) {
x = find(x);
y = find(y);
if (x == y) return false;
if (size[x] < size[y]) swap(x, y);
tot--;
parent[y] = x;
size[x] += size[y];
return true;
}
};
void solve() {
ll n, m1, m2; cin >> n >> m1 >> m2;
ll mx = max(m1, m2);
if (mx == n-1) return void(cout << "0\n");
DSU dsu1(n), dsu2(n);
fin(0, m1) {
ll u, v; cin >> u >> v;
dsu1.unite(u, v);
}
fin(0, m2) {
ll u, v; cin >> u >> v;
dsu2.unite(u, v);
}
ll needed = n-1-mx;
vector<pair<ll, ll>> ans;
for (ll i = 1; i <= n; i++) {
bool finish = false;
for (ll j = 1; j <= n; j++) {
if (dsu1.tot == 1) {
finish = true;
break;
}
bool can1 = dsu1.find(i) != dsu1.find(j);
bool can2 = dsu2.find(i) != dsu2.find(j);
if (can1 && can2) {
ans.push_back({i, j});
dsu1.unite(i, j);
dsu2.unite(i, j);
}
}
if (finish) break;
}
cout << needed << "\n";
for (auto [u, v] : ans) {
cout << u << " " << v << "\n";
}
}
int main() {
FAST;
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int tt = 1; //cin >> tt;
while(tt--){
solve();
}
return 0;
}
LyoKKiBBdXRob3I6IEdlZXphCiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaW4oYSwgbikgZm9yKGludCBpID0gYTsgaSA8IG47IGkrKykKI2RlZmluZSBmam4oYSwgbikgZm9yKGludCBqID0gYTsgaiA8IG47IGorKykKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLGEuZW5kKCkKI2RlZmluZSBhbGxyKGEpIGEucmJlZ2luKCksYS5yZW5kKCkKI2RlZmluZSBGQVNUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEpOwpjb25zdCBpbnQgTiA9IDFlNSsyMDsKY29uc3QgbGwgb28gPSAweDNmM2YzZjNmM2YzZjNmM2Y7CmNvbnN0IGludCBNT0QgPSAxMDAwMDAwMDA3LCBpbmYgPSAxZTY7CgpzdHJpbmcgZGlbXSA9IHsiRCIsIkwiLCAiVSIsICJSIiwgIlVMIiwgIlVSIiwgIkRMIiwgIkRSIn07CmludCBkeFtdID0geysxLCArMCwgKzAsIC0xLCAtMSwgLTEsICsxLCArMX07CmludCBkeVtdID0geyswLCAtMSwgKzEsICswLCAtMSwgKzEsIC0xLCArMX07CmNoYXIgZGNbXSA9IHsnRCcsICdMJywgJ1InLCAnVSd9OwoKc3RydWN0IERTVSB7CiAgICB2ZWN0b3I8aW50PiBwYXJlbnQsIHNpemU7CiAgICBsbCB0b3Q7CiAgICBEU1UoaW50IG4pIDogcGFyZW50KG4gKyAxKSwgc2l6ZShuICsgMSwgMSkgewogICAgICAgIGlvdGEocGFyZW50LmJlZ2luKCksIHBhcmVudC5lbmQoKSwgMCk7CiAgICAgICAgdG90ID0gbjsKICAgIH0KCiAgICBpbnQgZmluZChpbnQgeCkgewogICAgICAgIGlmICh4ID09IHBhcmVudFt4XSkgcmV0dXJuIHg7CiAgICAgICAgcmV0dXJuIHBhcmVudFt4XSA9IGZpbmQocGFyZW50W3hdKTsKICAgIH0KCiAgICBib29sIHVuaXRlKGludCB4LCBpbnQgeSkgewogICAgICAgIHggPSBmaW5kKHgpOwogICAgICAgIHkgPSBmaW5kKHkpOwogICAgICAgIGlmICh4ID09IHkpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAoc2l6ZVt4XSA8IHNpemVbeV0pIHN3YXAoeCwgeSk7CiAgICAgICAgdG90LS07CiAgICAgICAgcGFyZW50W3ldID0geDsKICAgICAgICBzaXplW3hdICs9IHNpemVbeV07CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9Cn07Cgp2b2lkIHNvbHZlKCkgewogICAgbGwgbiwgbTEsIG0yOyBjaW4gPj4gbiA+PiBtMSA+PiBtMjsKICAgIGxsIG14ID0gbWF4KG0xLCBtMik7CiAgICBpZiAobXggPT0gbi0xKSByZXR1cm4gdm9pZChjb3V0IDw8ICIwXG4iKTsKCiAgICBEU1UgZHN1MShuKSwgZHN1MihuKTsKCiAgICBmaW4oMCwgbTEpIHsKICAgICAgICBsbCB1LCB2OyBjaW4gPj4gdSA+PiB2OwogICAgICAgIGRzdTEudW5pdGUodSwgdik7CiAgICB9CgogICAgZmluKDAsIG0yKSB7CiAgICAgICAgbGwgdSwgdjsgY2luID4+IHUgPj4gdjsKICAgICAgICBkc3UyLnVuaXRlKHUsIHYpOwogICAgfQoKICAgIGxsIG5lZWRlZCA9IG4tMS1teDsKICAgIHZlY3RvcjxwYWlyPGxsLCBsbD4+IGFuczsKICAgIGZvciAobGwgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgYm9vbCBmaW5pc2ggPSBmYWxzZTsKICAgICAgICBmb3IgKGxsIGogPSAxOyBqIDw9IG47IGorKykgewogICAgICAgICAgICBpZiAoZHN1MS50b3QgPT0gMSkgewogICAgICAgICAgICAgICAgZmluaXNoID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJvb2wgY2FuMSA9IGRzdTEuZmluZChpKSAhPSBkc3UxLmZpbmQoaik7CiAgICAgICAgICAgIGJvb2wgY2FuMiA9IGRzdTIuZmluZChpKSAhPSBkc3UyLmZpbmQoaik7CiAgICAgICAgICAgIGlmIChjYW4xICYmIGNhbjIpIHsKICAgICAgICAgICAgICAgIGFucy5wdXNoX2JhY2soe2ksIGp9KTsKICAgICAgICAgICAgICAgIGRzdTEudW5pdGUoaSwgaik7CiAgICAgICAgICAgICAgICBkc3UyLnVuaXRlKGksIGopOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChmaW5pc2gpIGJyZWFrOwogICAgfQogICAgY291dCA8PCBuZWVkZWQgPDwgIlxuIjsKICAgIGZvciAoYXV0byBbdSwgdl0gOiBhbnMpIHsKICAgICAgICBjb3V0IDw8IHUgPDwgIiAiIDw8IHYgPDwgIlxuIjsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBGQVNUOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CiNlbmRpZgogICAgaW50IHR0ID0gMTsgLy9jaW4gPj4gdHQ7CiAgICB3aGlsZSh0dC0tKXsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=