#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1);
struct point {
  double x, y;
} O, wjh;
int i, n;
double alpha, p, l;
double det(point A, point B, point C, point D) {
  return (B.x - A.x) * (D.y - C.y) - (B.y - A.y) * (D.x - C.x);
}
void jiao(point &A, point &B, point &C, point &D) {
  double s1 = det(A, B, A, C), s2 = det(A, B, A, D);
  printf("%lf %lf\n", C.x + (D.x - C.x) / (s1 - s2) * s1,
         C.y + (D.y - C.y) / (s1 - s2) * s1);
}
int main() {
  scanf("%d", &n);
  if (n <= 4) {
    printf("No solution\n");
    return 0;
  }
  puts("-100 0");
  O.x = 0;
  O.y = 0;
  alpha = pi - pi * (n - 2) / n;
  p = 0;
  for (i = 1; i <= n - 2; ++i) {
    if (i == n / 2)
      l = 1000;
    else
      l = i / 900.0 + 1;
    wjh.x = O.x + l * cos(p);
    wjh.y = O.y + l * sin(p);
    printf("%lf %lf\n", wjh.x, wjh.y);
    O = wjh;
    p += alpha;
  }
  point A = {-100, 0}, B = {-100 + cos(pi - alpha), sin(pi - alpha)}, C = O,
        D = {C.x + cos(p), C.y + sin(p)};
  jiao(A, B, C, D);
}
