Functioning nearest neighbour. Tries to run nearest neighbour twice with different starting points if there is time left.