#16D8103010K
#ALDS_5_C

import math

def koch(n,p1,p2):
	if n==0:
		return
	s=[0 for i in range(2)]
	t=[0 for i in range(2)]
	u=[0 for i in range(2)]
	
	s[0]=(2*p1[0]+1*p2[0])/3
	s[1]=(2*p1[1]+1*p2[1])/3
	t[0]=(1*p1[0]+2*p2[0])/3
	t[1]=(1*p1[1]+2*p2[1])/3
	
	rad=math.radians(60)
	
	u[0]=(t[0]-s[0])*math.cos(rad)-(t[1]-s[1])*math.sin(rad)+s[0]
	u[1]=(t[0]-s[0])*math.sin(rad)+(t[1]-s[1])*math.cos(rad)+s[1]
	
	koch(n-1,p1,s)
	#pr8(s)
	print(*s)	
	koch(n-1,s,u)
	#pr8(u)
	print(*u)
	koch(n-1,u,t)
	#pr8(t)
	print(*t)
	koch(n-1,t,p2)
	
n=int(input())
p1=[0,0]
p2=[100,0]

print(*p1)
koch(n,p1,p2)
print(*p2) import math math def koch(n,p1,p2):
	if n==0:
		return
	s=[0 for i in range(2)]
	t=[0 for i in range(2)]
	u=[0 for i in range(2)]
	
	s[0]=(2*p1[0]+1*p2[0])/3
	s[1]=(2*p1[1]+1*p2[1])/3
	t[0]=(1*p1[0]+2*p2[0])/3
	t[1]=(1*p1[1]+2*p2[1])/3
	
	rad=math.radians(60)
	
	u[0]=(t[0]-s[0])*math.cos(rad)-(t[1]-s[1])*math.sin(rad)+s[0]
	u[1]=(t[0]-s[0])*math.sin(rad)+(t[1]-s[1])*math.cos(rad)+s[1]
	
	koch(n-1,p1,s)
	#pr8(s)
	print(*s)	
	koch(n-1,s,u)
	#pr8(u)
	print(*u)
	koch(n-1,u,t)
	#pr8(t)
	print(*t)
	koch(n-1,t,p2)
	 koch if n==0:
		return
	 n==0 n 0 return 0 for i in range(2) for i in range(2) i range(2) range 2 for i in range(2) 0 s=[0 for i in range(2)] s [0 for i in range(2)] 0 for i in range(2) for i in range(2) i range(2) range 2 for i in range(2) 0 t=[0 for i in range(2)] t [0 for i in range(2)] 0 for i in range(2) for i in range(2) i range(2) range 2 for i in range(2) 0 u=[0 for i in range(2)] u [0 for i in range(2)] s[0]=(2*p1[0]+1*p2[0])/3 s[0] s 0 (2*p1[0]+1*p2[0])/3 2*p1[0]+1*p2[0] 2*p1[0] 2 p1[0] p1 0 1*p2[0] 1 p2[0] p2 0 3 s[1]=(2*p1[1]+1*p2[1])/3 s[1] s 1 (2*p1[1]+1*p2[1])/3 2*p1[1]+1*p2[1] 2*p1[1] 2 p1[1] p1 1 1*p2[1] 1 p2[1] p2 1 3 t[0]=(1*p1[0]+2*p2[0])/3 t[0] t 0 (1*p1[0]+2*p2[0])/3 1*p1[0]+2*p2[0] 1*p1[0] 1 p1[0] p1 0 2*p2[0] 2 p2[0] p2 0 3 t[1]=(1*p1[1]+2*p2[1])/3 t[1] t 1 (1*p1[1]+2*p2[1])/3 1*p1[1]+2*p2[1] 1*p1[1] 1 p1[1] p1 1 2*p2[1] 2 p2[1] p2 1 3 rad=math.radians(60) rad math.radians(60) math.radians math radians 60 u[0]=(t[0]-s[0])*math.cos(rad)-(t[1]-s[1])*math.sin(rad)+s[0] u[0] u 0 (t[0]-s[0])*math.cos(rad)-(t[1]-s[1])*math.sin(rad)+s[0] (t[0]-s[0])*math.cos(rad)-(t[1]-s[1])*math.sin(rad) (t[0]-s[0])*math.cos(rad) t[0]-s[0] t[0] t 0 s[0] s 0 math.cos(rad) math.cos math cos rad (t[1]-s[1])*math.sin(rad) t[1]-s[1] t[1] t 1 s[1] s 1 math.sin(rad) math.sin math sin rad s[0] s 0 u[1]=(t[0]-s[0])*math.sin(rad)+(t[1]-s[1])*math.cos(rad)+s[1] u[1] u 1 (t[0]-s[0])*math.sin(rad)+(t[1]-s[1])*math.cos(rad)+s[1] (t[0]-s[0])*math.sin(rad)+(t[1]-s[1])*math.cos(rad) (t[0]-s[0])*math.sin(rad) t[0]-s[0] t[0] t 0 s[0] s 0 math.sin(rad) math.sin math sin rad (t[1]-s[1])*math.cos(rad) t[1]-s[1] t[1] t 1 s[1] s 1 math.cos(rad) math.cos math cos rad s[1] s 1 koch(n-1,p1,s) koch n-1 n 1 p1 s print(*s) print *s s koch(n-1,s,u) koch n-1 n 1 s u print(*u) print *u u koch(n-1,u,t) koch n-1 n 1 u t print(*t) print *t t koch(n-1,t,p2) koch n-1 n 1 t p2 n n p1 p1 p2 p2 n=int(input()) n int(input()) int input() input p1=[0,0] p1 [0,0] 0 0 p2=[100,0] p2 [100,0] 100 0 print(*p1) print *p1 p1 koch(n,p1,p2) koch n p1 p2 print(*p2) print *p2 p2 p2=[100,0] [100,0] p2 def koch(n,p1,p2):
	if n==0:
		return
	s=[0 for i in range(2)]
	t=[0 for i in range(2)]
	u=[0 for i in range(2)]
	
	s[0]=(2*p1[0]+1*p2[0])/3
	s[1]=(2*p1[1]+1*p2[1])/3
	t[0]=(1*p1[0]+2*p2[0])/3
	t[1]=(1*p1[1]+2*p2[1])/3
	
	rad=math.radians(60)
	
	u[0]=(t[0]-s[0])*math.cos(rad)-(t[1]-s[1])*math.sin(rad)+s[0]
	u[1]=(t[0]-s[0])*math.sin(rad)+(t[1]-s[1])*math.cos(rad)+s[1]
	
	koch(n-1,p1,s)
	#pr8(s)
	print(*s)	
	koch(n-1,s,u)
	#pr8(u)
	print(*u)
	koch(n-1,u,t)
	#pr8(t)
	print(*t)
	koch(n-1,t,p2)
	 def koch(n,p1,p2):
	if n==0:
		return
	s=[0 for i in range(2)]
	t=[0 for i in range(2)]
	u=[0 for i in range(2)]
	
	s[0]=(2*p1[0]+1*p2[0])/3
	s[1]=(2*p1[1]+1*p2[1])/3
	t[0]=(1*p1[0]+2*p2[0])/3
	t[1]=(1*p1[1]+2*p2[1])/3
	
	rad=math.radians(60)
	
	u[0]=(t[0]-s[0])*math.cos(rad)-(t[1]-s[1])*math.sin(rad)+s[0]
	u[1]=(t[0]-s[0])*math.sin(rad)+(t[1]-s[1])*math.cos(rad)+s[1]
	
	koch(n-1,p1,s)
	#pr8(s)
	print(*s)	
	koch(n-1,s,u)
	#pr8(u)
	print(*u)
	koch(n-1,u,t)
	#pr8(t)
	print(*t)
	koch(n-1,t,p2)
	 koch p1=[0,0] [0,0] p1 n=int(input()) int(input()) n
#16D8103010K
#ALDS_5_C

import math

def koch(n,p1,p2):
	if n==0:
		return
	s=[0 for i in range(2)]
	t=[0 for i in range(2)]
	u=[0 for i in range(2)]
	
	s[0]=(2*p1[0]+1*p2[0])/3
	s[1]=(2*p1[1]+1*p2[1])/3
	t[0]=(1*p1[0]+2*p2[0])/3
	t[1]=(1*p1[1]+2*p2[1])/3
	
	rad=math.radians(60)
	
	u[0]=(t[0]-s[0])*math.cos(rad)-(t[1]-s[1])*math.sin(rad)+s[0]
	u[1]=(t[0]-s[0])*math.sin(rad)+(t[1]-s[1])*math.cos(rad)+s[1]
	
	koch(n-1,p1,s)
	#pr8(s)
	print(*s)	
	koch(n-1,s,u)
	#pr8(u)
	print(*u)
	koch(n-1,u,t)
	#pr8(t)
	print(*t)
	koch(n-1,t,p2)
	
n=int(input())
p1=[0,0]
p2=[100,0]

print(*p1)
koch(n,p1,p2)
print(*p2)
