https://salt.pythonprogramminghelp.com/5-weird-but-effective-for-modular-decomposition/