class A:
    def __init__(self, txt: str):
        self.o: A = None
        self.txt = txt

class B:
    def __init__(self, txt: str):
        self.y: A = None
        self.o: A = None
        self.v: C = None
        self.txt = txt

class C:
    def __init__(self, txt: str):
        self.w: A = None
        self.z: C = None
        self.u: A = None
        self.txt = txt

k = A("k")
g = B("g")
d = C("d")
h = B("h")
f = C("f")
c = C("c")
i = A("i")
m = B("m")
a = B("a")
l = C("l")

k.o = i
g.y = k
g.o = i
g.v = d
d.w = k
d.z = f
d.u = i
h.y = i
h.o = i
h.v = f
f.w = k
f.u = k
f.z = d
c.w = k
c.u = k
c.z = f
i.o = k
m.y = k
m.o = k
m.v = d
a.y = i
a.o = i
a.v = d
l.w = i
l.z = c
l.u = k
assert d.u.o.o.o.txt == "
class A:
    def __init__(self, txt: str):
        self.o: A = None
        self.txt = txt

class B:
    def __init__(self, txt: str):
        self.y: A = None
        self.o: A = None
        self.v: C = None
        self.txt = txt

class C:
    def __init__(self, txt: str):
        self.w: A = None
        self.z: C = None
        self.u: A = None
        self.txt = txt

k = A("k")
g = B("g")
d = C("d")
h = B("h")
f = C("f")
c = C("c")
i = A("i")
m = B("m")
a = B("a")
l = C("l")

k.o = i
g.y = k
g.o = i
g.v = d
d.w = k
d.z = f
d.u = i
h.y = i
h.o = i
h.v = f
f.w = k
f.u = k
f.z = d
c.w = k
c.u = k
c.z = f
i.o = k
m.y = k
m.o = k
m.v = d
a.y = i
a.o = i
a.v = d
l.w = i
l.z = c
l.u = k
assert d.u.o.o.o.txt == "k"