#include <stdio.h>
#include <math.h>
#define P 3.141592




typedef struct{
  double x;
  double y;
}za;
za S(za, za);
za T(za, za);
za U(za, za);
void co(int,za,za);
int main(){
  za p1 = {0,0};
  za p2 = {100.0};
  int o;
  scanf("%d",&o);
  printf("%lf %lf", p1.x, p1.y);
  printf("\n");
  co(o,p1,p2);
  printf("%lf %lf", p2.x, p2.y);
  printf("\n"); 
  return 0;
}


za S(za p1,za p2) {
  za s;
  s.x = (2 * p1.x + p2.x) / 3;

	
    s.y = (2 * p1.y + p2.y) / 3;
    return s;
  }
  za T(za p1, za p2) {
    za t;
    t.x = (p1.x + 2 * p2.x) / 3;

	
    t.y = (p1.y + 2 * p2.y) / 3;
    return t;
  }
  za U(za t,za s) {
    za u;
    double en = 60*P/180.0;
	
    u.x = (t.x - s.x) * cos(en) - (t.y - s.y) * sin(en) + s.x;

	
    u.y = (t.x - s.x) * sin(en) + (t.y - s.y) * cos(en) + s.y;
    return u;
  }
  void co(int n, za p1, za p2) {
    za s, t, u;
    if (n == 0)	return;
    s = S(p1, p2);
    
    t = T(p1, p2);
    
    u = U(t, s);
    
    co(n - 1, p1, s);
   printf("%lf %lf\n", s.x,s.y);
    co(n - 1, s, u);
    printf("%lf %lf\n", u.x, u.y);
    co(n - 1, u, t);
    printf("%lf %lf\n", t.x, t.y);
    co(n - 1, t, p2);
  }

