class A:
    def __init__(self, txt: str):
        self.p: B = None
        self.w: A = None
        self.txt = txt

class B:
    def __init__(self, txt: str):
        self.y: B = None
        self.txt = txt

e = A("e")
m = B("m")
l = A("l")
n = A("n")
k = B("k")
c = A("c")
h = B("h")
d = A("d")
a = A("a")
b = A("b")

e.p = k
e.w = a
m.y = h
l.p = h
l.w = n
n.p = m
n.w = b
k.y = m
c.p = k
c.w = b
h.y = m
d.p = k
d.w = b
a.p = h
a.w = d
b.p = m
b.w = c
assert a.p.y.y.y.y.y.y.y.y.y.txt == "
class A:
    def __init__(self, txt: str):
        self.p: B = None
        self.w: A = None
        self.txt = txt

class B:
    def __init__(self, txt: str):
        self.y: B = None
        self.txt = txt

e = A("e")
m = B("m")
l = A("l")
n = A("n")
k = B("k")
c = A("c")
h = B("h")
d = A("d")
a = A("a")
b = A("b")

e.p = k
e.w = a
m.y = h
l.p = h
l.w = n
n.p = m
n.w = b
k.y = m
c.p = k
c.w = b
h.y = m
d.p = k
d.w = b
a.p = h
a.w = d
b.p = m
b.w = c
assert a.p.y.y.y.y.y.y.y.y.y.txt == "m"