Excelente código, muito boa utilização de sets, e manipulação de strings.
Consideração muito importante:
Python tem um padrão de nomenclatura de variáveis, e esse padrão é o snake_case, ou seja, palavras minúsculas, separadas por underline.
É essencial seguir esse padrão. camelCase, como no caso das variáveis soAna e soLaura ou PascalCase, como no caso de ListaAna não devem quase jamais ser usadas para nomear variáveis. PascalCase é usado para nomear classes. Qualquer outra coisa, funções, variáveis, parâmetros, métodos, etc, devem usar snake_case.
Ademais, parabéns pela excelente lógica.