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

typedef struct{

  double x;
  double y;

}TEN;

void KOHHO(int,TEN,TEN); //コッホ関数

int main()
{
  int n;
  
  TEN O,L; //最初と最後の点

  O.x=0;
  O.y=0;
  
  L.x=100;
  L.y=0;
  
  scanf("%d",&n); //nに数値いれる

  printf("%f %f\n",O.x,O.y);
  KOHHO(n,O,L);
  printf("%f %f\n",L.x,L.y);
  
  return 0;
}

void KOHHO(int n,TEN p,TEN q)
{
  TEN s,t,u;

  if(n==0)return;
  
  s.x=( (2*p.x) + q.x )/3;
  s.y=( (2*p.y) + q.y )/3;
  t.x=( p.x + (2*q.x) )/3;
  t.y=( p.y + (2*q.y) )/3;
  u.x=(t.x-s.x)*cos(M_PI/3) - (t.y-s.y)*sin(M_PI/3) + s.x;
  u.y=(t.x-s.x)*sin(M_PI/3) + (t.y-s.y)*cos(M_PI/3) + s.y;
  
  KOHHO(n-1,p,s);
  printf("%f %f\n",s.x,s.y);
  KOHHO(n-1,s,u);
  printf("%f %f\n",u.x,u.y);
  KOHHO(n-1,u,t);
  printf("%f %f\n",t.x,t.y);
  KOHHO(n-1,t,q);
  
}
  

