Design a time-versioned key-value store and find common free time | Meta Interview Question