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

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

int koch(int ,P ,P);

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


int koch(int n,P p1,P p2)
{
    P s,t,u;
    if(n == 0) return 0;
    
    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) * 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;
    
    koch(n-1,p1,s);
    printf("%f %f\n",s.x,s.y);
    koch(n-1,s,u);
    printf("%f %f\n",u.x,u.y);
    koch(n-1,u,t);
    printf("%f %f\n",t.x,t.y);
    koch(n-1,t,p2);
    
    return 0;
}


