Coloring algorithm