Волновой алгоритм

Не испытан. Варнинги про equals