Sum and product rules, nPr and nCr, arrangements with repeated letters, circular arrangements, inclusion-exclusion and the pigeonhole principle, with every number checked by a program.