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

void alg(int n, point a, point b) {
	if (n==0)return;
	point i, j, k;
	double th=M_PI*60.0/180.0;
	i.x=(2.0*a.x+1.0*b.x)/3.0;
	i.y=(2.0*a.y+1.0*b.y)/3.0;
	j.x=(1.0*a.x+2.0*b.x)/3.0;
	j.y=(1.0*a.y+2.0*b.y)/3.0;
	k.x=(j.x-i.x)*cos(th)-(j.y-i.y)*sin(th)+i.x;
	k.y=(j.x-i.x)*sin(th)-(j.y-i.y)*cos(th)+j.y;
	alg(n - 1, a, i);
	printf("%.8f %.8f\n", i.x, i.y);
	alg(n - 1, i, k);
	printf("%.8f %.8f\n", k.x, k.y);
	alg(n - 1, k, j);
	printf("%.8f %.8f\n", j.x, j.y);
	alg(n - 1, j, b);
}

int main() {
	point t, s;
	int n;
	scanf("%d", &n);
	s.x=0;
	s.y=0;
	t.x=100;
	t.y=0;
	printf("%.8f %.8f\n", s.x, s.y);
	alg(n, s, t);
	printf("%.8f %.8f\n", t.x, t.y);
	return 0;
}
