Hopcroft-Karp algorithm