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

void kock(int,p,p);

int main(){
	int n;
	p p1,p2;
	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);
	kock(n,p1,p2);
	printf("%.8f %.8f\n",p2.x,p2.y);
	return 0;
}


void kock(int n,p p1,p p2){
	p s,l,u;
	if(n == 0) return ;

	s.x = (2*p1.x + 1*p2.x)/3.0;
	s.y = (2*p1.y + 1*p2.y)/3.0;
	l.x = (1*p1.x + 2*p2.x)/3.0;
	l.y = (1*p1.y + 2*p2.y)/3.0;
	u.x = (l.x-s.x)*cos(M_PI/3)-(l.y-s.y)*sin(M_PI/3)+s.x;
	u.y = (l.x-s.x)*sin(M_PI/3)+(l.y-s.y)*cos(M_PI/3)+s.y;


		kock(n-1,p1,s);
		printf("%.8f %.8f\n",s.x,s.y);
		kock(n-1,s,u);
		printf("%.8f %.8f\n",u.x,u.y);
		kock(n-1,u,l);
		printf("%.8f %.8f\n",l.x,l.y);
		kock(n-1,l,p2);

}