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

typedef struct _COORD {
	double x;
	double y;
} COORD;

#define RAD(a)  ((a) * M_PI / 180.0)

/////////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////////
double div3left(double a, double b)
{
	return (2*a+b)/3;
}

/////////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////////
double div3right(double a, double b)
{
	return (a+2*b)/3;
}

/////////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////////
COORD Triangle(COORD p1, COORD p2)
{
	COORD ret;
	double th = M_PI * 60.0 / 180.0; // ?????????????????¢?????????????????????

	double a = p2.x - p1.x;
	double b = p2.y - p1.y;
	double Cos60;
	double Sin60;

	Cos60 = cos( th );
	Sin60 = sin( th );
	ret.x = a * Cos60 - b * Sin60 + p1.x;
	ret.y = a * Sin60 + b * Cos60 + p1.y;
	return ret;
}

/////////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////////
void kock(int n, COORD p1, COORD p2)
{
	COORD s, u, t;

	if (n == 0) {
		return;
	}

	// p1, p2 ?????? s, t, u ????¨????
	s.x = div3left(p1.x, p2.x);
	s.y = div3left(p1.y, p2.y);
	t.x = div3right(p1.x, p2.x);
	t.y = div3right(p1.y, p2.y);
	u = Triangle(s, t);

	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, t);
	printf("%.8f %.8f\n", t.x, t.y);
	kock(n-1, t, p2);
}

/////////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////////
int main(void)
{
	int n;
	COORD p1 = { 0., 0.};
	COORD p2 = { 100., 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;
}