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

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

int kock(int n, p p1, p p2){
  if(n==0) return 0;
  
  p s,t,u;
  
  s.x = ( 2*p1.x + 1*p2.x )/3;
  s.y = ( 2*p1.y + 1*p2.y )/3;
  t.x = ( 1*p1.x + 2*p2.x )/3;
  t.y = ( 1*p1.y + 2*p2.y )/3;
  u.x = ( t.x - s.x ) * 0.5 - ( t.y - s.y ) * (sqrt(3.0)/2.0) + s.x;
  u.y = ( t.x - s.x ) * (sqrt(3.0)/2.0) + ( t.y - s.y ) * 0.5 + s.y;
  
  
  kock(n-1,p1,s);
  printf("%lf %lf\n",s.x,s.y);
  kock(n-1,s,u);
  printf("%lf %lf\n",u.x,u.y);
  kock(n-1,u,t);
  printf("%lf %lf\n",t.x,t.y);
  kock(n-1,t,p2);
 
}

int main(char args[]){
  
  int n;
  p p1 = {0,0},p2 = {100,0};
  
  
  scanf("%d",&n);
  
  printf("%lf %lf\n",p1.x,p1.y);
  kock(n,p1,p2);
  printf("%lf %lf\n",p2.x,p2.y);
  
  return 0;
}