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

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

void koch(int,P,P);

int main(){
    P p1,p2;
    int n;
    
    p1.x=0.0;
    p1.y=0.0;
    p2.x=100.0;
    p2.y=0.0;
    
    scanf("%d",&n);
    
    printf("%.8f %.8f\n",p1.x,p1.y);
    
    koch(n,p1,p2);
    
    printf("%.8f %.8f\n",p2.x,p2.y);
    
    return 0;
    
}

void koch(int d,P a,P b){
    P s,t,u;
    double rad;
    
    if(d==0) return;
    
    s.x=(2*a.x+b.x)/3.0;
    s.y=(2*a.y+b.y)/3.0;
    t.x=(a.x+2*b.x)/3.0;
    t.y=(a.y+2*b.y)/3.0;
    
    rad=60.0*M_PI/180.0;
    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(d-1,a,s);
    printf("%.8f %.8f\n",s.x,s.y);
    koch(d-1,s,u);
    printf("%.8f %.8f\n",u.x,u.y);
    koch(d-1,u,t);
    printf("%.8f %.8f\n",t.x,t.y);
    koch(d-1,t,b);
    
}

