4
1 4
3 1
3 4
 5
4 1
4 3
5 3
2 4
 21
7 15
13 1
14 3
4 10
2 3
16 18
17 20
16 20
8 4
3 12
2 17
13 11
16 1
13 2
13 5
8 9
6 14
3 17
16 9
13 8
 3
3 1
3 2
 6
5 2
5 3
1 4
3 1
5 6
 60
17 34
46 22
50 44
46 33
41 21
31 33
48 6
38 19
35 60
2 24
49 29
7 53
34 1
19 55
32 1
31 42
27 28
4 53
6 50
21 34
1 10
12 36
54 8
16 13
51 43
45 51
54 20
13 53
34 33
49 33
51 11
59 34
15 5
59 28
30 39
13 30
58 4
34 14
3 9
19 34
4 18
26 48
56 54
3 43
57 25
3 41
35 3
48 44
19 13
54 1
23 31
59 47
5 1
46 40
6 26
20 25
37 5
17 24
20 52
 3
3 2
1 2
 39
6 13
15 39
10 35
31 28
4 21
12 39
3 7
3 13
6 1
5 14
36 28
12 15
18 38
30 29
19 34
36 16
20 22
8 13
38 32
26 39
21 37
1 7
15 27
12 26
8 3
6 14
29 2
25 23
32 21
5 16
32 25
6 8
13 10
23 30
34 37
29 33
28 14
36 5
 10
5 9
8 5
7 6
7 9
3 9
2 1
7 2
3 6
7 1

1
3 4 1 2  0
 3
13 2 1 7 3 17 1 19 13 8 1 21  0
 0
 2
48 44 1 6 6 26 1 12  0
 7
12 15 1 2 1 7 1 9 12 26 1 11 8 3 1 12 6 8 1 17 28 14 1 20 36 5 1 24  2
3 6 1 4 7 1 1 10 
#include <bits/stdc++.h>
using namespace std;
int U[(1000)];
int R[2 * (1000)];
int Roads_to_delete[2 * (1000)];
int Roads_to_add[2 * (1000)];
int N_segments;
int N_cities;
int N_roads_to_delete;
void join_segments(int c1, int c2) {
  if (U[c1] == U[c2]) {
    Roads_to_delete[N_roads_to_delete * 2] = c1;
    Roads_to_delete[N_roads_to_delete * 2 + 1] = c2;
    ++N_roads_to_delete;
    return;
  }
  int u = U[c1];
  for (int i = 0; i < (1000); i++)
    if (U[i] == c2) U[i] = u;
}
void remap_segments3() {
  int N_roads_to_add = 0;
  int c1 = -1;
  int c2 = -1;
  for (int i = 0; i < N_cities; i++) {
    if (U[i] == i) {
      if (c1 == -1) {
        c2 = U[i];
        c1 = U[i];
      } else {
        c1 = c2;
        c2 = U[i];
        Roads_to_add[N_roads_to_add * 2] = c1;
        Roads_to_add[N_roads_to_add * 2 + 1] = c2;
        ++N_roads_to_add;
      }
    }
  }
}
int main(void) {
  std::ios::sync_with_stdio(false);
  cin >> N_cities;
  for (int i = 0; i < N_cities; i++) U[i] = i;
  N_roads_to_delete = 0;
  for (int i = 0; i < N_cities - 1; i++) {
    int c1, c2;
    cin >> c1 >> c2;
    join_segments(c1 - 1, c2 - 1);
  }
  remap_segments3();
  cout << N_roads_to_delete << endl;
  if (N_roads_to_delete > 0) {
    int is_first = 1;
    for (int i = 0; i < N_roads_to_delete; i++) {
      if (!is_first) cout << " ";
      is_first = 0;
      cout << Roads_to_delete[i * 2] + 1 << " "
           << Roads_to_delete[i * 2 + 1] + 1 << " " << Roads_to_add[i * 2] + 1
           << " " << Roads_to_add[i * 2 + 1] + 1;
    }
  }
  return 0;
}
