Given a massive log file represented as a list of strings, where each string is the title of a book that a user has read, implement a function to find the top K most frequently read books.
The function should return a list of the top K book titles sorted by their frequency in descending order. If two books have the same frequency, return them in alphabetical order.
Example 1:
Input: logs = ['Book A', 'Book B', 'Book A', 'Book C', 'Book B', 'Book B'], K = 2
Output: ['Book B', 'Book A']
Explanation: Book B is read 3 times, Book A is read 2 times.
Example 2:
Input: logs = ['Book D', 'Book E', 'Book D', 'Book F', 'Book E', 'Book E'], K = 1
Output: ['Book E']
Explanation: Book E is read 3 times, which is the highest frequency.
1 <= logs.length <= 10^51 <= K <= 10^5 and K will not exceed the number of unique books in logs.