#include <bits/stdc++.h>
using namespace std;
int parent[1030], size[1030];
int find_set(int a) {
  if (parent[a] != a) {
    parent[a] = find_set(parent[a]);
  }
  return parent[a];
}
bool union_set(int a, int b) {
  a = find_set(a);
  b = find_set(b);
  if (a != b) {
    if (size[a] < size[b]) {
      swap(a, b);
    }
    parent[b] = a;
    size[a] += size[b];
    return true;
  }
  return false;
}
int main() {
  ios_base::sync_with_stdio(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) parent[i] = i, size[i] = 0;
  int u, v;
  vector<pair<int, int> > add, remove;
  for (int i = 0; i < n - 1; i++) {
    cin >> u >> v;
    u--, v--;
    if (!union_set(u, v)) {
      remove.push_back(make_pair(u + 1, v + 1));
    }
  }
  for (int i = 1; i < n; i++) {
    if (union_set(0, i)) {
      add.push_back(make_pair(1, i + 1));
    }
  }
  cout << add.size() << "\n";
  for (int i = 0; i < add.size(); i++) {
    cout << remove[i].first << " " << remove[i].second << " " << add[i].first
         << " " << add[i].second << "\n";
  }
  return 0;
}
