#include <bits/stdc++.h>
using namespace std;
const long double pi = 3.1415926;
long long mul(long long a, long long b) { return (a * b) % (100000007); }
long long add(long long a, long long b) { return (a + b) % (100000007); }
long long sub(long long a, long long b) {
  return (a - b + (a - b) / (100000007) * (100000007) + (100000007)) %
         (100000007);
}
int n;
complex<long double> a[(100 + 10)], A, B;
long double rand(long double x) {
  long double p = (long double)(rand());
  while (p > 1) p /= 10;
  return p * x;
}
int main() {
  cin >> n;
  srand(6);
  if (n <= 4) {
    puts("No solution");
    return 0;
  }
  double e = 2 * pi / n, r = n > 10 ? 1000 : 100;
  for (int i = 0; i < n; i++) a[i] = polar(r, e * i);
  long double t = r * sin(e / 2) / sin(pi / 2 - e) / 100;
  long double k = 0;
  for (int i = 0; i < n - 1; i++) {
    A = a[(i - 1 + n) % n], B = a[(i + 2) % n];
    k += 0.5;
    a[i] += k * (a[i] - A) / abs(a[i] - A);
    a[i + 1] += k * (a[i + 1] - B) / abs(a[i + 1] - B);
  }
  cout.setf(ios::fixed);
  cout.precision(9);
  for (int i = 0; i < n; i++) cout << a[i].real() << ' ' << a[i].imag() << endl;
  return 0;
}
