// i wants to take ioi
//binhtinhtutinkhongcaycunhungmotkhikhongcontutinnualatuyetvong
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define nn "\n"
#define pi pair<int, int>
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define eb emplace_back
#define pb push_back
#define TASK " "
#define ms(a, x) memset(a, x, sizeof(a))
#define all(a) a.begin(), a.end()
#define All(a, n) a + 1, a + 1 + n
#define LOG 19
const int INF = 1e18;
const int mod = 1e9;
const int N = 1e3 + 5;
int MOD = 998244353;
int bit[200000];
struct node{
int kc, u, hk;
bool operator<(const node& other) const {
return kc > other.kc;
}
};
struct edge{
int v, w, h;
};
int n;
struct edges{
int a, b;
} canh[N];
int sz[N], par[N];
void make_set(int s){
sz[s] = 1;
par[s] = s;
}
int get(int s){
if(par[s] == s) return s;
return par[s] = get(par[s]);
}
void union_set(int a, int b){
a = get(a);
b = get(b);
if(a != b){
if(sz[a] < sz[b]) swap(a, b);
par[b] = a;
sz[a] += sz[b];
}
}
void nhap(){
cin >> n;
for(int i = 1; i <= n - 1; i++){
cin >> canh[i].a >> canh[i].b;
}
}
vector<pi> v;
vector<pi> vt;
void solve(){
for(int i = 1; i <= n; i++){
make_set(i);
}
for(int i = 1; i < n; i++){
if(get(canh[i].a) != get(canh[i].b)){
union_set(canh[i].a, canh[i].b);
}
else{
v.eb(canh[i].a, canh[i].b);
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
if(i != j){
if(get(i) != get(j)){
union_set(i, j);
vt.eb(i, j);
}
}
}
}
cout << v.size() << nn;
for(int i = 0; i < v.size(); i++){
cout << v[i].fi << " " << v[i].se << " " << vt[i].fi << " " << vt[i].se << nn;
}
}
signed main() {
// freopen("piggyback.in", "r", stdin);
// freopen("piggyback.out", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
nhap();
solve();
return (0 ^ 0);
}
Ly8gaSB3YW50cyB0byB0YWtlIGlvaQovL2Jpbmh0aW5odHV0aW5raG9uZ2NheWN1bmh1bmdtb3RraGlraG9uZ2NvbnR1dGlubnVhbGF0dXlldHZvbmcKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgbm4gIlxuIgojZGVmaW5lIHBpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgVEFTSyAiICIKCiNkZWZpbmUgbXMoYSwgeCkgbWVtc2V0KGEsIHgsIHNpemVvZihhKSkKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgQWxsKGEsIG4pIGEgKyAxLCBhICsgMSArIG4KCiNkZWZpbmUgTE9HIDE5CgoKY29uc3QgaW50IElORiA9IDFlMTg7CmNvbnN0IGludCBtb2QgPSAxZTk7CmNvbnN0IGludCBOID0gMWUzICArIDU7CmludCBNT0QgPSA5OTgyNDQzNTM7CmludCBiaXRbMjAwMDAwXTsKc3RydWN0IG5vZGV7CglpbnQga2MsIHUsIGhrOwoJYm9vbCBvcGVyYXRvcjwoY29uc3Qgbm9kZSYgb3RoZXIpIGNvbnN0IHsKICAgICAgICByZXR1cm4ga2MgPiBvdGhlci5rYzsKICAgIH0KfTsKc3RydWN0IGVkZ2V7CglpbnQgdiwgdywgaDsKfTsKaW50IG47CnN0cnVjdCBlZGdlc3sKICAgIGludCBhLCBiOwp9IGNhbmhbTl07CmludCBzeltOXSwgcGFyW05dOwoKdm9pZCBtYWtlX3NldChpbnQgcyl7CiAgICBzeltzXSA9IDE7CiAgICBwYXJbc10gPSBzOwp9CmludCBnZXQoaW50IHMpewogICAgaWYocGFyW3NdID09IHMpIHJldHVybiBzOwogICAgcmV0dXJuIHBhcltzXSA9IGdldChwYXJbc10pOwp9CnZvaWQgdW5pb25fc2V0KGludCBhLCBpbnQgYil7CiAgICBhID0gZ2V0KGEpOwogICAgYiA9IGdldChiKTsKICAgIGlmKGEgIT0gYil7CiAgICAgICAgaWYoc3pbYV0gPCBzeltiXSkgc3dhcChhLCBiKTsKICAgICAgICBwYXJbYl0gPSBhOwogICAgICAgIHN6W2FdICs9IHN6W2JdOwogICAgfQp9CnZvaWQgbmhhcCgpewogICAgY2luID4+IG47CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG4gLSAxOyBpKyspewogICAgICAgIGNpbiA+PiBjYW5oW2ldLmEgPj4gY2FuaFtpXS5iOwogICAgfQp9CnZlY3RvcjxwaT4gdjsKdmVjdG9yPHBpPiB2dDsKdm9pZCBzb2x2ZSgpewogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIG1ha2Vfc2V0KGkpOwogICAgfQogICAgZm9yKGludCBpID0gMTsgaSA8IG47IGkrKyl7CiAgICAgICAgaWYoZ2V0KGNhbmhbaV0uYSkgIT0gZ2V0KGNhbmhbaV0uYikpewogICAgICAgICAgICB1bmlvbl9zZXQoY2FuaFtpXS5hLCBjYW5oW2ldLmIpOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICB2LmViKGNhbmhbaV0uYSwgY2FuaFtpXS5iKTsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgZm9yKGludCBqID0gMTsgaiA8PSBuOyBqKyspewogICAgICAgICAgICBpZihpICE9IGopewogICAgICAgICAgICAgICAgaWYoZ2V0KGkpICE9IGdldChqKSl7CiAgICAgICAgICAgICAgICAgICAgdW5pb25fc2V0KGksIGopOwogICAgICAgICAgICAgICAgICAgIHZ0LmViKGksIGopOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCB2LnNpemUoKSA8PCBubjsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCB2LnNpemUoKTsgaSsrKXsKICAgICAgICBjb3V0IDw8IHZbaV0uZmkgPDwgIiAiIDw8IHZbaV0uc2UgPDwgIiAiIDw8IHZ0W2ldLmZpIDw8ICIgIiA8PCB2dFtpXS5zZSA8PCBubjsKICAgIH0KfQpzaWduZWQgbWFpbigpIHsKCS8vIGZyZW9wZW4oInBpZ2d5YmFjay5pbiIsICJyIiwgc3RkaW4pOwoJLy8gZnJlb3BlbigicGlnZ3liYWNrLm91dCIsICJ3Iiwgc3Rkb3V0KTsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOwoJY291dC50aWUoMCk7CgluaGFwKCk7Cglzb2x2ZSgpOwoJcmV0dXJuICgwIF4gMCk7Cgp9Cg==