#include <stdio.h>
#include <math.h>
int n,count=0;double rad=M_PI/3;void segment(double x1,double y1,double x5,double y5,int count){double x2,y2,x3,y3,x4,y4;x2=(2*x1+x5)/3.0;y2=(2*y1+y5)/3.0;x4=(x1+2*x5)/3.0;y4=(y1+2*y5)/3.0;x3=x2+(x4-x2)*cos(rad)-(y4-y2)*sin(rad);y3=y2+(x4-x2)*sin(rad)+(y4-y2)*cos(rad);count++;if(count<n){segment(x1,y1,x2,y2,count);segment(x2,y2,x3,y3,count);segment(x3,y3,x4,y4,count);segment(x4,y4,x5,y5,count);}else{printf("%f %f\n",x2,y2);printf("%f %f\n",x3,y3);printf("%f %f\n",x4,y4);printf("%f %f\n",x5,y5);}}int main(){double x1=0.0,x2=100.0;scanf("%d",&n);printf("%f %f\n",x1,x1);if(n==0) printf("%f %f\n",x2,x1);else segment(x1,x1,x2,x1,count);return 0;}