Brute-force algorithms