#include<stdio.h>
#include<math.h>
typedef struct{
    double x;
    double y;
}point;


void sum(int xu,point fan,point malon){
    if(xu==0) return;
    point s,u,t;
    s.x=(2*fan.x+malon.x)/3;
    s.y=(2*fan.y+malon.y)/3;
    t.x=(fan.x+malon.x*2)/3;
    t.y=(fan.y+malon.y*2)/3;
    u.x=(t.x-s.x)/2-(t.y-s.y)*sqrt(3)/2+s.x;
    u.y=(t.x-s.x)*sqrt(3)/2+(t.y-s.y)/2+s.y;
    
    sum(xu-1,fan,s);
    printf("%f %f\n",s.x,s.y);
    sum(xu-1,s,u);
    printf("%f %f\n",u.x,u.y);
    sum(xu-1,u,t);
    printf("%f %f\n",t.x,t.y);
    sum(xu-1,t,malon);
}

int main(){
    int n;
    scanf("%d",&n);
    point fan={0,0};
    point malon={100,0};
    
    printf("%f %f\n",fan.x,fan.y);
    sum(n,fan,malon);
    printf("%f %f\n",malon.x,malon.y);
    
    
    return 0;
}

