#include <bits/stdc++.h>
using namespace std;
const double slen = 16.18033988749894902526;
const double xx[5] = {0.0, 0.0, 9.51056516295153642204, 9.51056516295153642204,
                      -5.87785252292473092695};
const double yy[5] = {0.0, 0.0, 3.09016994374947406854, 13.09016994374947451263,
                      8.09016994374947451263};
double x[20000], y[20000];
double dist(int i, int j) {
  double xx = x[i] - x[j];
  double yy = y[i] - y[j];
  return sqrt(xx * xx + yy * yy);
}
int main() {
  for (int i = (1), _b = (4); i <= _b; i++) {
    x[i] = xx[i];
    y[i] = yy[i];
  }
  x[5] = xx[1];
  y[5] = slen;
  int n;
  scanf("%d", &n);
  int id = 5;
  for (int i = (2), _b = (n); i <= _b; i++) {
    for (int _ = 0, _n = (4); _ < _n; _++) {
      id++;
      x[id] = x[id - 4];
      y[id] = y[id - 4] + slen;
    }
  }
  printf("%d\n", id);
  for (int i = (1), _b = (id); i <= _b; i++)
    printf("%.20lf %.20lf\n", x[i] + 1e-12, y[i] + 1e-12);
  int s = 1;
  for (int i = (1), _b = (n); i <= _b; i++) {
    printf("%d %d %d %d %d\n", s, s + 1, s + 2, s + 4, s + 3);
    s += 4;
  }
  s = 1;
  printf("1 ");
  for (int i = (1), _b = (n); i <= _b; i++) {
    s += 4;
    printf("%d ", s);
  }
  for (int i = (1), _b = (n); i <= _b; i++) {
    printf("%d %d %d ", s - 3, s - 1, s - 2);
    s -= 4;
    printf("%d", s);
    if (s != 1) putchar(' ');
  }
  puts("");
  return 0;
}
