import math as m
def plot(x,y):
    print(f'{x:.8f} {y:.8f}')
def koch(n,x1,y1,x2,y2):
    if n==0:
        plot(x1,y1)
        return
    sx=(2*x1+x2)/3
    sy=(2*y1+y2)/3
    tx=(x1+2*x2)/3
    ty=(y1+2*y2)/3
    ux=(tx-sx)*m.cos(m.radians(60))-(ty-sy)*m.sin(m.radians(60))+sx
    uy=(tx-sx)*m.sin(m.radians(60))+(ty-sy)*m.cos(m.radians(60))+sy
    koch(n-1,x1,y1,sx,sy)
    koch(n-1,sx,sy,ux,uy)
    koch(n-1,ux,uy,tx,ty)
    koch(n-1,tx,ty,x2,y2)
n=int(input())
koch(n,0,0,100,0)
plot(100,0) import math as m math def plot(x,y):
    print(f'{x:.8f} {y:.8f}') plot print(f'{x:.8f} {y:.8f}') print f'{x:.8f} {y:.8f}' x x y y def koch(n,x1,y1,x2,y2):
    if n==0:
        plot(x1,y1)
        return
    sx=(2*x1+x2)/3
    sy=(2*y1+y2)/3
    tx=(x1+2*x2)/3
    ty=(y1+2*y2)/3
    ux=(tx-sx)*m.cos(m.radians(60))-(ty-sy)*m.sin(m.radians(60))+sx
    uy=(tx-sx)*m.sin(m.radians(60))+(ty-sy)*m.cos(m.radians(60))+sy
    koch(n-1,x1,y1,sx,sy)
    koch(n-1,sx,sy,ux,uy)
    koch(n-1,ux,uy,tx,ty)
    koch(n-1,tx,ty,x2,y2) koch if n==0:
        plot(x1,y1)
        return
     n==0 n 0 plot(x1,y1) plot x1 y1 return sx=(2*x1+x2)/3 sx (2*x1+x2)/3 2*x1+x2 2*x1 2 x1 x2 3 sy=(2*y1+y2)/3 sy (2*y1+y2)/3 2*y1+y2 2*y1 2 y1 y2 3 tx=(x1+2*x2)/3 tx (x1+2*x2)/3 x1+2*x2 x1 2*x2 2 x2 3 ty=(y1+2*y2)/3 ty (y1+2*y2)/3 y1+2*y2 y1 2*y2 2 y2 3 ux=(tx-sx)*m.cos(m.radians(60))-(ty-sy)*m.sin(m.radians(60))+sx ux (tx-sx)*m.cos(m.radians(60))-(ty-sy)*m.sin(m.radians(60))+sx (tx-sx)*m.cos(m.radians(60))-(ty-sy)*m.sin(m.radians(60)) (tx-sx)*m.cos(m.radians(60)) tx-sx tx sx m.cos(m.radians(60)) m.cos m cos m.radians(60) m.radians m radians 60 (ty-sy)*m.sin(m.radians(60)) ty-sy ty sy m.sin(m.radians(60)) m.sin m sin m.radians(60) m.radians m radians 60 sx uy=(tx-sx)*m.sin(m.radians(60))+(ty-sy)*m.cos(m.radians(60))+sy uy (tx-sx)*m.sin(m.radians(60))+(ty-sy)*m.cos(m.radians(60))+sy (tx-sx)*m.sin(m.radians(60))+(ty-sy)*m.cos(m.radians(60)) (tx-sx)*m.sin(m.radians(60)) tx-sx tx sx m.sin(m.radians(60)) m.sin m sin m.radians(60) m.radians m radians 60 (ty-sy)*m.cos(m.radians(60)) ty-sy ty sy m.cos(m.radians(60)) m.cos m cos m.radians(60) m.radians m radians 60 sy koch(n-1,x1,y1,sx,sy) koch n-1 n 1 x1 y1 sx sy koch(n-1,sx,sy,ux,uy) koch n-1 n 1 sx sy ux uy koch(n-1,ux,uy,tx,ty) koch n-1 n 1 ux uy tx ty koch(n-1,tx,ty,x2,y2) koch n-1 n 1 tx ty x2 y2 n n x1 x1 y1 y1 x2 x2 y2 y2 n=int(input()) n int(input()) int input() input koch(n,0,0,100,0) koch n 0 0 100 0 plot(100,0) plot 100 0 n=int(input()) int(input()) n def plot(x,y):
    print(f'{x:.8f} {y:.8f}') def plot(x,y):
    print(f'{x:.8f} {y:.8f}') plot def koch(n,x1,y1,x2,y2):
    if n==0:
        plot(x1,y1)
        return
    sx=(2*x1+x2)/3
    sy=(2*y1+y2)/3
    tx=(x1+2*x2)/3
    ty=(y1+2*y2)/3
    ux=(tx-sx)*m.cos(m.radians(60))-(ty-sy)*m.sin(m.radians(60))+sx
    uy=(tx-sx)*m.sin(m.radians(60))+(ty-sy)*m.cos(m.radians(60))+sy
    koch(n-1,x1,y1,sx,sy)
    koch(n-1,sx,sy,ux,uy)
    koch(n-1,ux,uy,tx,ty)
    koch(n-1,tx,ty,x2,y2) def koch(n,x1,y1,x2,y2):
    if n==0:
        plot(x1,y1)
        return
    sx=(2*x1+x2)/3
    sy=(2*y1+y2)/3
    tx=(x1+2*x2)/3
    ty=(y1+2*y2)/3
    ux=(tx-sx)*m.cos(m.radians(60))-(ty-sy)*m.sin(m.radians(60))+sx
    uy=(tx-sx)*m.sin(m.radians(60))+(ty-sy)*m.cos(m.radians(60))+sy
    koch(n-1,x1,y1,sx,sy)
    koch(n-1,sx,sy,ux,uy)
    koch(n-1,ux,uy,tx,ty)
    koch(n-1,tx,ty,x2,y2) koch
import math as m
def plot(x,y):
    print(f'{x:.8f} {y:.8f}')
def koch(n,x1,y1,x2,y2):
    if n==0:
        plot(x1,y1)
        return
    sx=(2*x1+x2)/3
    sy=(2*y1+y2)/3
    tx=(x1+2*x2)/3
    ty=(y1+2*y2)/3
    ux=(tx-sx)*m.cos(m.radians(60))-(ty-sy)*m.sin(m.radians(60))+sx
    uy=(tx-sx)*m.sin(m.radians(60))+(ty-sy)*m.cos(m.radians(60))+sy
    koch(n-1,x1,y1,sx,sy)
    koch(n-1,sx,sy,ux,uy)
    koch(n-1,ux,uy,tx,ty)
    koch(n-1,tx,ty,x2,y2)
n=int(input())
koch(n,0,0,100,0)
plot(100,0)
