#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
int n;
int m;
vector<pair<int, int> > v[100000];
int main() {
  scanf("%d", &n);
  printf("%d\n", n - 1);
  for (int i = 0; i < n - 1; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    a--;
    b--;
    v[a].push_back(make_pair(b, i + 1));
    v[b].push_back(make_pair(a, i + 1));
    printf("2 %d %d\n", a + 1, b + 1);
  }
  for (int i = 0; i < n; i++)
    for (int j = 0; j < ((int)(v[i]).size()) - 1; j++)
      printf("%d %d\n", v[i][j].second, v[i][j + 1].second);
  return 0;
}
