n=int(input())
p=[[0,0]]
r3=1.7320508
def unit_koch(p1,p2,d):
  if d>=n:
    return
  s=[(p1[0]*2+p2[0])/3,(p1[1]*2+p2[1])/3]
  t=[(p1[0]+p2[0]*2)/3,(p1[1]+p2[1]*2)/3]
  v_s_t=[t[0]-s[0],t[1]-s[1]]
  v_s_u=[v_s_t[0]/2-v_s_t[1]*r3/2,v_s_t[1]/2+v_s_t[0]*r3/2]
  u=[s[0]+v_s_u[0],s[1]+v_s_u[1]]
  unit_koch(p1,s,d+1)
  p.append(s)
  unit_koch(s,u,d+1)
  p.append(u)
  unit_koch(u,t,d+1)
  p.append(t)
  unit_koch(t,p2,d+1)
unit_koch([0,0],[100,0],0)
p.append([100,0])
for i in p:
  print(str(i[0])+' '+str(i[1])) n=int(input()) n int(input()) int input() input p=[[0,0]] p [[0,0]] [0,0] 0 0 r3=1.7320508 r3 1.7320508 def unit_koch(p1,p2,d):
  if d>=n:
    return
  s=[(p1[0]*2+p2[0])/3,(p1[1]*2+p2[1])/3]
  t=[(p1[0]+p2[0]*2)/3,(p1[1]+p2[1]*2)/3]
  v_s_t=[t[0]-s[0],t[1]-s[1]]
  v_s_u=[v_s_t[0]/2-v_s_t[1]*r3/2,v_s_t[1]/2+v_s_t[0]*r3/2]
  u=[s[0]+v_s_u[0],s[1]+v_s_u[1]]
  unit_koch(p1,s,d+1)
  p.append(s)
  unit_koch(s,u,d+1)
  p.append(u)
  unit_koch(u,t,d+1)
  p.append(t)
  unit_koch(t,p2,d+1) unit_koch if d>=n:
    return
   d>=n d n return s=[(p1[0]*2+p2[0])/3,(p1[1]*2+p2[1])/3] s [(p1[0]*2+p2[0])/3,(p1[1]*2+p2[1])/3] (p1[0]*2+p2[0])/3 p1[0]*2+p2[0] p1[0]*2 p1[0] p1 0 2 p2[0] p2 0 3 (p1[1]*2+p2[1])/3 p1[1]*2+p2[1] p1[1]*2 p1[1] p1 1 2 p2[1] p2 1 3 t=[(p1[0]+p2[0]*2)/3,(p1[1]+p2[1]*2)/3] t [(p1[0]+p2[0]*2)/3,(p1[1]+p2[1]*2)/3] (p1[0]+p2[0]*2)/3 p1[0]+p2[0]*2 p1[0] p1 0 p2[0]*2 p2[0] p2 0 2 3 (p1[1]+p2[1]*2)/3 p1[1]+p2[1]*2 p1[1] p1 1 p2[1]*2 p2[1] p2 1 2 3 v_s_t=[t[0]-s[0],t[1]-s[1]] v_s_t [t[0]-s[0],t[1]-s[1]] t[0]-s[0] t[0] t 0 s[0] s 0 t[1]-s[1] t[1] t 1 s[1] s 1 v_s_u=[v_s_t[0]/2-v_s_t[1]*r3/2,v_s_t[1]/2+v_s_t[0]*r3/2] v_s_u [v_s_t[0]/2-v_s_t[1]*r3/2,v_s_t[1]/2+v_s_t[0]*r3/2] v_s_t[0]/2-v_s_t[1]*r3/2 v_s_t[0]/2 v_s_t[0] v_s_t 0 2 v_s_t[1]*r3/2 v_s_t[1]*r3 v_s_t[1] v_s_t 1 r3 2 v_s_t[1]/2+v_s_t[0]*r3/2 v_s_t[1]/2 v_s_t[1] v_s_t 1 2 v_s_t[0]*r3/2 v_s_t[0]*r3 v_s_t[0] v_s_t 0 r3 2 u=[s[0]+v_s_u[0],s[1]+v_s_u[1]] u [s[0]+v_s_u[0],s[1]+v_s_u[1]] s[0]+v_s_u[0] s[0] s 0 v_s_u[0] v_s_u 0 s[1]+v_s_u[1] s[1] s 1 v_s_u[1] v_s_u 1 unit_koch(p1,s,d+1) unit_koch p1 s d+1 d 1 p.append(s) p.append p append s unit_koch(s,u,d+1) unit_koch s u d+1 d 1 p.append(u) p.append p append u unit_koch(u,t,d+1) unit_koch u t d+1 d 1 p.append(t) p.append p append t unit_koch(t,p2,d+1) unit_koch t p2 d+1 d 1 p1 p1 p2 p2 d d unit_koch([0,0],[100,0],0) unit_koch [0,0] 0 0 [100,0] 100 0 0 p.append([100,0]) p.append p append [100,0] 100 0 for i in p:
  print(str(i[0])+' '+str(i[1])) i p print(str(i[0])+' '+str(i[1])) print str(i[0])+' '+str(i[1]) str(i[0])+' ' str(i[0]) str i[0] i 0 ' ' str(i[1]) str i[1] i 1 r3=1.7320508 1.7320508 r3 n=int(input()) int(input()) n p=[[0,0]] [[0,0]] p def unit_koch(p1,p2,d):
  if d>=n:
    return
  s=[(p1[0]*2+p2[0])/3,(p1[1]*2+p2[1])/3]
  t=[(p1[0]+p2[0]*2)/3,(p1[1]+p2[1]*2)/3]
  v_s_t=[t[0]-s[0],t[1]-s[1]]
  v_s_u=[v_s_t[0]/2-v_s_t[1]*r3/2,v_s_t[1]/2+v_s_t[0]*r3/2]
  u=[s[0]+v_s_u[0],s[1]+v_s_u[1]]
  unit_koch(p1,s,d+1)
  p.append(s)
  unit_koch(s,u,d+1)
  p.append(u)
  unit_koch(u,t,d+1)
  p.append(t)
  unit_koch(t,p2,d+1) def unit_koch(p1,p2,d):
  if d>=n:
    return
  s=[(p1[0]*2+p2[0])/3,(p1[1]*2+p2[1])/3]
  t=[(p1[0]+p2[0]*2)/3,(p1[1]+p2[1]*2)/3]
  v_s_t=[t[0]-s[0],t[1]-s[1]]
  v_s_u=[v_s_t[0]/2-v_s_t[1]*r3/2,v_s_t[1]/2+v_s_t[0]*r3/2]
  u=[s[0]+v_s_u[0],s[1]+v_s_u[1]]
  unit_koch(p1,s,d+1)
  p.append(s)
  unit_koch(s,u,d+1)
  p.append(u)
  unit_koch(u,t,d+1)
  p.append(t)
  unit_koch(t,p2,d+1) unit_koch
n=int(input())
p=[[0,0]]
r3=1.7320508
def unit_koch(p1,p2,d):
  if d>=n:
    return
  s=[(p1[0]*2+p2[0])/3,(p1[1]*2+p2[1])/3]
  t=[(p1[0]+p2[0]*2)/3,(p1[1]+p2[1]*2)/3]
  v_s_t=[t[0]-s[0],t[1]-s[1]]
  v_s_u=[v_s_t[0]/2-v_s_t[1]*r3/2,v_s_t[1]/2+v_s_t[0]*r3/2]
  u=[s[0]+v_s_u[0],s[1]+v_s_u[1]]
  unit_koch(p1,s,d+1)
  p.append(s)
  unit_koch(s,u,d+1)
  p.append(u)
  unit_koch(u,t,d+1)
  p.append(t)
  unit_koch(t,p2,d+1)
unit_koch([0,0],[100,0],0)
p.append([100,0])
for i in p:
  print(str(i[0])+' '+str(i[1]))
