#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1), eps = 1e-5;
int n;
mt19937 rng(19260817);
int main() {
  cin >> n;
  for (int t = 1; t <= 1000; t++) {
    double c = 0, f = 0;
    vector<double> v;
    for (int i = 0; i < n - 2; i++) {
      double x = uniform_real_distribution<>(1, 1000)(rng);
      v.push_back(x);
      c -= x * cos(2 * pi / n * (i)), f -= x * sin(2 * pi / n * (i));
    }
    double a = cos(2 * pi / n * (n - 2)), b = cos(2 * pi / n * (n - 1)),
           d = sin(2 * pi / n * (n - 2)), e = sin(2 * pi / n * (n - 1)), x, y;
    if (abs(a) > eps && abs(e - d * b / a) > eps) {
      y = (f - d * c / a) / (e - d * b / a);
      x = c / a - b / a * y;
    } else {
      y = c / b;
      x = f / d - e / d * y;
    }
    if (!(1 <= y && y <= 1000 && 1 <= x && x <= 1000)) continue;
    v.push_back(x), v.push_back(y);
    vector<double> v0 = v;
    sort(v0.begin(), v0.end());
    bool flg = true;
    for (int i = 0; i + 1 < v0.size(); i++)
      if (abs(v0[i] - v0[i + 1]) <= eps) {
        flg = false;
        break;
      }
    if (flg) {
      x = 0, y = 0;
      for (int i = 0; i < n; i++)
        printf("%.9lf %.9lf\n", (x += v[i] * cos(2 * pi / n * (i))) + 100000,
               (y += v[i] * sin(2 * pi / n * (i))) + 100000);
      return 0;
    }
  }
  puts("No solution");
  return 0;
}
