实现了有限制的first以及first_beta_a，注意参看注释，实现为按自身需求实现的。