import math
class Point:
	def __init__(self,x,y):
		self.x=x
		self.y=y
	def __str__(self):
		return str(self.x)+' '+str(self.y)
	
def koch(n,a,b):
	if n==0: return
	s=Point(0,0)
	t=Point(0,0)
	u=Point(0,0)
	th=math.pi*60/180
	s.x=(2*a.x+1*b.x)/3
	s.y=(2*a.y+1*b.y)/3
	t.x=(1*a.x+2*b.x)/3
	t.y=(1*a.y+2*b.y)/3
	u.x=(t.x-s.x)*math.cos(th)-(t.y-s.y)*math.sin(th)+s.x
	u.y=(t.x-s.x)*math.sin(th)+(t.y-s.y)*math.cos(th)+s.y
	
	koch(n-1,a,s)
	print(s)
	koch(n-1,s,u)
	print(u)
	koch(n-1,u,t)
	print(t)
	koch(n-1,t,b)

n=int(input())
a=Point(0,0)
b=Point(100,0)
print(a)
koch(n,a,b)
print(b)
 import math math class Point:
	def __init__(self,x,y):
		self.x=x
		self.y=y
	def __str__(self):
		return str(self.x)+' '+str(self.y)
	 Point def __init__(self,x,y):
		self.x=x
		self.y=y
	 __init__ self.x=x self.x self x x self.y=y self.y self y y self self x x y y def __str__(self):
		return str(self.x)+' '+str(self.y)
	 __str__ return str(self.x)+' '+str(self.y) str(self.x)+' '+str(self.y) str(self.x)+' ' str(self.x) str self.x self x ' ' str(self.y) str self.y self y self self def koch(n,a,b):
	if n==0: return
	s=Point(0,0)
	t=Point(0,0)
	u=Point(0,0)
	th=math.pi*60/180
	s.x=(2*a.x+1*b.x)/3
	s.y=(2*a.y+1*b.y)/3
	t.x=(1*a.x+2*b.x)/3
	t.y=(1*a.y+2*b.y)/3
	u.x=(t.x-s.x)*math.cos(th)-(t.y-s.y)*math.sin(th)+s.x
	u.y=(t.x-s.x)*math.sin(th)+(t.y-s.y)*math.cos(th)+s.y
	
	koch(n-1,a,s)
	print(s)
	koch(n-1,s,u)
	print(u)
	koch(n-1,u,t)
	print(t)
	koch(n-1,t,b) koch if n==0: return
	 n==0 n 0 s=Point(0,0) s Point(0,0) Point 0 0 t=Point(0,0) t Point(0,0) Point 0 0 u=Point(0,0) u Point(0,0) Point 0 0 th=math.pi*60/180 th math.pi*60/180 math.pi*60 math.pi math pi 60 180 s.x=(2*a.x+1*b.x)/3 s.x s x (2*a.x+1*b.x)/3 2*a.x+1*b.x 2*a.x 2 a.x a x 1*b.x 1 b.x b x 3 s.y=(2*a.y+1*b.y)/3 s.y s y (2*a.y+1*b.y)/3 2*a.y+1*b.y 2*a.y 2 a.y a y 1*b.y 1 b.y b y 3 t.x=(1*a.x+2*b.x)/3 t.x t x (1*a.x+2*b.x)/3 1*a.x+2*b.x 1*a.x 1 a.x a x 2*b.x 2 b.x b x 3 t.y=(1*a.y+2*b.y)/3 t.y t y (1*a.y+2*b.y)/3 1*a.y+2*b.y 1*a.y 1 a.y a y 2*b.y 2 b.y b y 3 u.x=(t.x-s.x)*math.cos(th)-(t.y-s.y)*math.sin(th)+s.x u.x u x (t.x-s.x)*math.cos(th)-(t.y-s.y)*math.sin(th)+s.x (t.x-s.x)*math.cos(th)-(t.y-s.y)*math.sin(th) (t.x-s.x)*math.cos(th) t.x-s.x t.x t x s.x s x math.cos(th) math.cos math cos th (t.y-s.y)*math.sin(th) t.y-s.y t.y t y s.y s y math.sin(th) math.sin math sin th s.x s x u.y=(t.x-s.x)*math.sin(th)+(t.y-s.y)*math.cos(th)+s.y u.y u y (t.x-s.x)*math.sin(th)+(t.y-s.y)*math.cos(th)+s.y (t.x-s.x)*math.sin(th)+(t.y-s.y)*math.cos(th) (t.x-s.x)*math.sin(th) t.x-s.x t.x t x s.x s x math.sin(th) math.sin math sin th (t.y-s.y)*math.cos(th) t.y-s.y t.y t y s.y s y math.cos(th) math.cos math cos th s.y s y koch(n-1,a,s) koch n-1 n 1 a s print(s) print s koch(n-1,s,u) koch n-1 n 1 s u print(u) print u koch(n-1,u,t) koch n-1 n 1 u t print(t) print t koch(n-1,t,b) koch n-1 n 1 t b n n a a b b n=int(input()) n int(input()) int input() input a=Point(0,0) a Point(0,0) Point 0 0 b=Point(100,0) b Point(100,0) Point 100 0 print(a) print a koch(n,a,b) koch n a b print(b) print b b=Point(100,0) Point(100,0) b def koch(n,a,b):
	if n==0: return
	s=Point(0,0)
	t=Point(0,0)
	u=Point(0,0)
	th=math.pi*60/180
	s.x=(2*a.x+1*b.x)/3
	s.y=(2*a.y+1*b.y)/3
	t.x=(1*a.x+2*b.x)/3
	t.y=(1*a.y+2*b.y)/3
	u.x=(t.x-s.x)*math.cos(th)-(t.y-s.y)*math.sin(th)+s.x
	u.y=(t.x-s.x)*math.sin(th)+(t.y-s.y)*math.cos(th)+s.y
	
	koch(n-1,a,s)
	print(s)
	koch(n-1,s,u)
	print(u)
	koch(n-1,u,t)
	print(t)
	koch(n-1,t,b) def koch(n,a,b):
	if n==0: return
	s=Point(0,0)
	t=Point(0,0)
	u=Point(0,0)
	th=math.pi*60/180
	s.x=(2*a.x+1*b.x)/3
	s.y=(2*a.y+1*b.y)/3
	t.x=(1*a.x+2*b.x)/3
	t.y=(1*a.y+2*b.y)/3
	u.x=(t.x-s.x)*math.cos(th)-(t.y-s.y)*math.sin(th)+s.x
	u.y=(t.x-s.x)*math.sin(th)+(t.y-s.y)*math.cos(th)+s.y
	
	koch(n-1,a,s)
	print(s)
	koch(n-1,s,u)
	print(u)
	koch(n-1,u,t)
	print(t)
	koch(n-1,t,b) koch class Point:
	def __init__(self,x,y):
		self.x=x
		self.y=y
	def __str__(self):
		return str(self.x)+' '+str(self.y)
	 class Point:
	def __init__(self,x,y):
		self.x=x
		self.y=y
	def __str__(self):
		return str(self.x)+' '+str(self.y)
	 Point n=int(input()) int(input()) n a=Point(0,0) Point(0,0) a
import math
class Point:
	def __init__(self,x,y):
		self.x=x
		self.y=y
	def __str__(self):
		return str(self.x)+' '+str(self.y)
	
def koch(n,a,b):
	if n==0: return
	s=Point(0,0)
	t=Point(0,0)
	u=Point(0,0)
	th=math.pi*60/180
	s.x=(2*a.x+1*b.x)/3
	s.y=(2*a.y+1*b.y)/3
	t.x=(1*a.x+2*b.x)/3
	t.y=(1*a.y+2*b.y)/3
	u.x=(t.x-s.x)*math.cos(th)-(t.y-s.y)*math.sin(th)+s.x
	u.y=(t.x-s.x)*math.sin(th)+(t.y-s.y)*math.cos(th)+s.y
	
	koch(n-1,a,s)
	print(s)
	koch(n-1,s,u)
	print(u)
	koch(n-1,u,t)
	print(t)
	koch(n-1,t,b)

n=int(input())
a=Point(0,0)
b=Point(100,0)
print(a)
koch(n,a,b)
print(b)

