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

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

void Koch_curve( int, coordinate, coordinate);
  
coordinate C1,C2;

int main()
{
  int n;
  int i,j;

  C1.x=0,C1.y=0;   // 始点 p1
  C2.x=100,C2.y=0; // 終点 p2
  
  scanf("%d",&n);
  printf("%f %f\n", C1.x, C1.y);
  Koch_curve(n,C1,C2);
  
  return 0;
}

void Koch_curve( int n, coordinate C1, coordinate C2)
{
  coordinate s,t,u;
  if(n==0)
    {
      printf("%f %f\n", C2.x, C2.y);
      return;
    }
  
  s.x = (2*C1.x+1*C2.x)/3;
  s.y= (2*C1.y+1*C2.y)/3;
  
  t.x=(1*C1.x+2*C2.x)/3;
  t.y=(1*C1.y+2*C2.y)/3;

  double rad=M_PI *60/180;
  u.x=(t.x-s.x)*cos(rad)-(t.y-s.y)*sin(rad)+s.x;
  u.y=(t.x-s.x)*sin(rad)+(t.y-s.y)*cos(rad)+s.y;
  
  Koch_curve(n-1,C1,s);
  Koch_curve(n-1,s,u);
  Koch_curve(n-1,u,t); 
  Koch_curve(n-1,t,C2);
  
}

