Problem Statement  
There are some books, each consisting of exactly three parts: introduction, story and edification. There is a reader who goes through the books and reads various parts. Each time he finishes reading a part, he adds the name of the part to the end of a list. He may read zero or more parts from each book, and he can read them in any order, but he cannot read each part more than once. Whenever he starts reading a new book, he can no longer go back and read any parts of books he has looked at previously. You are given a String[] readParts containing the list created by the reader. Each element of readParts is "introduction", "story" or "edification" (quotes for clarity). Return the maximum possible number of books for which the reader has read all three parts.  
Definition  
 
Constraints  
  readParts will contain between 1 and 50 elements, inclusive.  
  Each element of readParts will be "introduction", "story" or "edification" (quotes for clarity).  
Examples  
0)  
 
1)  
 
2)  
 
3)  
