complete algo