class A: pass
class B(A): pass
class C: pass
class D(B): pass
class E(B, C): pass

def lca_type(classes):
    last_parent = None
    for parents in zip(*(reversed(cls.mro()) for cls in classes)):
        if len(set(parents)) > 1:
            break
        last_parent = parents[0]
    return last_parent.__name__

print(lca_type({D, E}))