class X:
    i = 0


class Y:
    i = 1


class Z:
    i = 2


class A(X, Y):
    pass


class B(Y, Z):
    pass


class M(B, A, Z):
    pass


AObj = A()
print(AObj.i)

BObj = B()
print(BObj.i)

MObj = M()
print(MObj.i)

# Output:
# [<class '__main__.M'>, <class '__main__.B'>,
# <class '__main__.A'>, <class '__main__.X'>,
# <class '__main__.Y'>, <class '__main__.Z'>,
# <class 'object'>]

print(A.mro())
print(B.mro())
print(M.mro())
aac99e1f9ca3816465d60fd950c388131954ba55
<mask token>


class Y:
    <mask token>


class Z:
    i = 2


class A(X, Y):
    pass


class B(Y, Z):
    pass


class M(B, A, Z):
    pass


<mask token>

class X:
    <mask token>


class Y:
    i = 1


class Z:
    i = 2


class A(X, Y):
    pass


class B(Y, Z):
    pass


class M(B, A, Z):
    pass


<mask token>

class X:
    i = 0


class Y:
    i = 1


class Z:
    i = 2


class A(X, Y):
    pass


class B(Y, Z):
    pass


class M(B, A, Z):
    pass


<mask token>

class X:
    i = 0


class Y:
    i = 1


class Z:
    i = 2


class A(X, Y):
    pass


class B(Y, Z):
    pass


class M(B, A, Z):
    pass


AObj = A()
print(AObj.i)
BObj = B()
print(BObj.i)
MObj = M()
print(MObj.i)
print(A.mro())
print(B.mro())
print(M.mro())

class X:
    i = 0


class Y:
    i = 1


class Z:
    i = 2


class A(X, Y):
    pass


class B(Y, Z):
    pass


class M(B, A, Z):
    pass


AObj = A()
print(AObj.i)

BObj = B()
print(BObj.i)

MObj = M()
print(MObj.i)

# Output:
# [<class '__main__.M'>, <class '__main__.B'>,
# <class '__main__.A'>, <class '__main__.X'>,
# <class '__main__.Y'>, <class '__main__.Z'>,
# <class 'object'>]

print(A.mro())
print(B.mro())
print(M.mro())