Combinatorics- How they are important to computer science