#include <stdio.h>
#include <math.h>

typedef struct{
  double x;
  double y;
}Point;

void koho(int, Point, Point);

int main () {
  int n = 0;
  Point p1, p2;

  p1.x = 0.0;
  p1.y = 0.0;
  p2.x = 100.0;
  p2.y = 0.0;

  scanf("%d",&n);

  printf("%.8lf %.8lf\n",p1.x,p1.y);
  koho(n, p1, p2);
  printf("%.8lf %.8lf\n",p2.x,p2.y);

  return 0;
}


void koho(int n, Point p1, Point p2) {
  Point s, t, u;
  if(n == 0) return;

  s.x = (2*p1.x + p2.x) / 3;
  s.y = (2*p1.y + p2.y) / 3;
  t.x = (p1.x + 2*p2.x) / 3;
  t.y = (p1.y + 2*p2.y) / 3;
  u.x = cos(M_PI/3) * (t.x - s.x) - sin(M_PI/3) * (t.y - s.y) + s.x;
  u.y = sin(M_PI/3) * (t.x - s.x) + cos(M_PI/3) * (t.y - s.y) + s.y;

  koho(n - 1, p1, s);

  printf("%.8lf %.8lf\n",s.x,s.y);
  koho(n - 1, s, u);
 
  printf("%.8lf %.8lf\n",u.x,u.y);
  koho(n - 1, u, t);
  
  
  printf("%.8lf %.8lf\n",t.x,t.y);
  koho(n - 1, t, p2);
 
  
}

