block blast solver algorithm