first ver of SA algorithm