#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 1010;
long long cm[MAXN];
vector<long long> com[MAXN], sz;
pair<long long, long long> del[MAXN], bld[MAXN];
long long comp(long long u) {
  long long ans = u;
  while (cm[ans] > -1) ans = cm[ans];
  while (ans != u) {
    long long a = u;
    u = cm[u];
    cm[a] = ans;
  }
  return ans;
}
void merge(long long u, long long v) {
  long long up = comp(u), vp = comp(v);
  if (cm[up] > cm[vp]) {
    swap(up, vp);
  }
  cm[up] += cm[vp];
  cm[vp] = up;
}
int32_t main() {
  long long n;
  cin >> n;
  for (long long i = 0; i < n; i++) {
    cm[i] = -1;
  }
  long long j = 0;
  for (long long i = 0; i < n - 1; i++) {
    long long u, v;
    cin >> u >> v;
    u--;
    v--;
    if (comp(u) == comp(v)) {
      del[j].first = u + 1;
      del[j].second = v + 1;
      j++;
    } else
      merge(u, v);
  }
  j = 0;
  long long x = comp(0);
  for (long long i = 0; i < n; i++) {
    if (comp(i) != x) {
      bld[j].first = x + 1;
      bld[j].second = comp(i) + 1;
      j++;
      merge(x, comp(i));
      x = comp(x);
    }
  }
  cout << j << endl;
  for (long long i = 0; i < j; i++) {
    cout << del[i].first << " " << del[i].second << " " << bld[i].first << " "
         << bld[i].second << endl;
  }
  return 0;
}
