doggo algorithm