use bitwise to store candidates, found slower