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

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

class C:
    def __init__(self, txt: str):
        self.p: B = None
        self.s: C = None
        self.v: B = None
        self.txt = txt

g = A("g")
d = B("d")
f = C("f")
l = C("l")
b = B("b")
h = C("h")
n = B("n")
i = B("i")
c = C("c")
a = A("a")

g.v = d
g.o = a
g.r = b
d.v = g
d.s = i
f.p = b
f.s = c
f.v = i
l.p = d
l.v = d
l.s = f
b.v = a
b.s = n
h.p = n
h.s = l
h.v = b
n.v = a
n.s = d
i.v = a
i.s = n
c.p = i
c.v = i
c.s = h
a.v = i
a.o = g
a.r = d
assert h.s.p.v.txt == "
class A:
    def __init__(self, txt: str):
        self.v: B = None
        self.o: A = None
        self.r: B = None
        self.txt = txt

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

class C:
    def __init__(self, txt: str):
        self.p: B = None
        self.s: C = None
        self.v: B = None
        self.txt = txt

g = A("g")
d = B("d")
f = C("f")
l = C("l")
b = B("b")
h = C("h")
n = B("n")
i = B("i")
c = C("c")
a = A("a")

g.v = d
g.o = a
g.r = b
d.v = g
d.s = i
f.p = b
f.s = c
f.v = i
l.p = d
l.v = d
l.s = f
b.v = a
b.s = n
h.p = n
h.s = l
h.v = b
n.v = a
n.s = d
i.v = a
i.s = n
c.p = i
c.v = i
c.s = h
a.v = i
a.o = g
a.r = d
assert h.s.p.v.txt == "g"