#include<stdio.h>
#include<math.h>
typedef struct{
	double x;
	double y;
}p;
void kock(int,p,p);

int main(){
	int n;
	p a={0.0,0.0};
	p b={100.0,0.0};
	scanf("%d",&n);
	printf("%f %f\n",a.x,a.y);
	kock(n,a,b);
	printf("%f %f\n",b.x,b.y);
	return 0;
}

void kock(int n,p p1,p p2){
	p s,u,t;
	if(n==0)return;
	s.x=(p1.x*2+p2.x)/3;
	t.x=(p1.x+p2.x*2)/3;
	s.y=(p1.y*2+p2.y)/3;
	t.y=(p1.y+p2.y*2)/3;
	u.x=cos(M_PI/3)*(t.x-s.x)-sin(M_PI/3)*(t.y-s.y)+s.x;
	u.y=sin(M_PI/3)*(t.x-s.x)+cos(M_PI/3)*(t.y-s.y)+s.y;
	
	kock(n-1,p1,s);
	printf("%f %f\n",s.x,s.y);
	kock(n-1,s,u);
	printf("%f %f\n",u.x,u.y);
	kock(n-1,u,t);
	printf("%f %f\n",t.x,t.y);
	kock(n-1,t,p2);
}
