import math
def koch(n, p1, p2):
    if n == 0:
        return None
    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]
    u = [
        (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) + s[0],
        (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) + s[1]
    ]

    koch(n-1, p1, s)
    print(f"{s[0]:.8f} {s[1]:.8f}")
    koch(n-1, s, u)
    print(f"{u[0]:.8f} {u[1]:.8f}")
    koch(n-1, u, t)
    print(f"{t[0]:.8f} {t[1]:.8f}")
    koch(n-1, t, p2)

n = int(input())
print(0, 0)
koch(n, [0.0, 0.0], [100.0, 0.0])
print(100, 0)
 import math math def koch(n, p1, p2):
    if n == 0:
        return None
    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]
    u = [
        (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) + s[0],
        (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) + s[1]
    ]

    koch(n-1, p1, s)
    print(f"{s[0]:.8f} {s[1]:.8f}")
    koch(n-1, s, u)
    print(f"{u[0]:.8f} {u[1]:.8f}")
    koch(n-1, u, t)
    print(f"{t[0]:.8f} {t[1]:.8f}")
    koch(n-1, t, p2) koch if n == 0:
        return None
     n == 0 n 0 return None None 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 u = [
        (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) + s[0],
        (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) + s[1]
    ] u [
        (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) + s[0],
        (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) + s[1]
    ] (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) + s[0] (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) (t[0] - s[0]) * math.cos(math.pi / 3) t[0] - s[0] t[0] t 0 s[0] s 0 math.cos(math.pi / 3) math.cos math cos math.pi / 3 math.pi math pi 3 (t[1] - s[1]) * math.sin(math.pi / 3) t[1] - s[1] t[1] t 1 s[1] s 1 math.sin(math.pi / 3) math.sin math sin math.pi / 3 math.pi math pi 3 s[0] s 0 (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) + s[1] (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) (t[0] - s[0]) * math.sin(math.pi / 3) t[0] - s[0] t[0] t 0 s[0] s 0 math.sin(math.pi / 3) math.sin math sin math.pi / 3 math.pi math pi 3 (t[1] - s[1]) * math.cos(math.pi / 3) t[1] - s[1] t[1] t 1 s[1] s 1 math.cos(math.pi / 3) math.cos math cos math.pi / 3 math.pi math pi 3 s[1] s 1 koch(n-1, p1, s) koch n-1 n 1 p1 s print(f"{s[0]:.8f} {s[1]:.8f}") print f"{s[0]:.8f} {s[1]:.8f}" koch(n-1, s, u) koch n-1 n 1 s u print(f"{u[0]:.8f} {u[1]:.8f}") print f"{u[0]:.8f} {u[1]:.8f}" koch(n-1, u, t) koch n-1 n 1 u t print(f"{t[0]:.8f} {t[1]:.8f}") print f"{t[0]:.8f} {t[1]:.8f}" 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 print(0, 0) print 0 0 koch(n, [0.0, 0.0], [100.0, 0.0]) koch n [0.0, 0.0] 0.0 0.0 [100.0, 0.0] 100.0 0.0 print(100, 0) print 100 0 n = int(input()) int(input()) n def koch(n, p1, p2):
    if n == 0:
        return None
    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]
    u = [
        (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) + s[0],
        (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) + s[1]
    ]

    koch(n-1, p1, s)
    print(f"{s[0]:.8f} {s[1]:.8f}")
    koch(n-1, s, u)
    print(f"{u[0]:.8f} {u[1]:.8f}")
    koch(n-1, u, t)
    print(f"{t[0]:.8f} {t[1]:.8f}")
    koch(n-1, t, p2) def koch(n, p1, p2):
    if n == 0:
        return None
    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]
    u = [
        (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) + s[0],
        (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) + s[1]
    ]

    koch(n-1, p1, s)
    print(f"{s[0]:.8f} {s[1]:.8f}")
    koch(n-1, s, u)
    print(f"{u[0]:.8f} {u[1]:.8f}")
    koch(n-1, u, t)
    print(f"{t[0]:.8f} {t[1]:.8f}")
    koch(n-1, t, p2) koch
import math
def koch(n, p1, p2):
    if n == 0:
        return None
    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]
    u = [
        (t[0] - s[0]) * math.cos(math.pi / 3) - (t[1] - s[1]) * math.sin(math.pi / 3) + s[0],
        (t[0] - s[0]) * math.sin(math.pi / 3) + (t[1] - s[1]) * math.cos(math.pi / 3) + s[1]
    ]

    koch(n-1, p1, s)
    print(f"{s[0]:.8f} {s[1]:.8f}")
    koch(n-1, s, u)
    print(f"{u[0]:.8f} {u[1]:.8f}")
    koch(n-1, u, t)
    print(f"{t[0]:.8f} {t[1]:.8f}")
    koch(n-1, t, p2)

n = int(input())
print(0, 0)
koch(n, [0.0, 0.0], [100.0, 0.0])
print(100, 0)

