solve by BF, good