class A:
def m(self):
print("class A: m(self)")
class B(A):
def m(self):
print("class B(A): m(self)")
class C(A):
def m(self):
print("class C(A): m(self)")
class D(B, C):
def m(self):
print("class D(B, C): m(self)")
ao = A()
ao.m()
print()
bo = B()
bo.m()
print()
co = C()
co.m()
print()
do = D()
do.m()
print()
'''
run:
class A: m(self)
class B(A): m(self)
class C(A): m(self)
class D(B, C): m(self)
'''