De qual geração você é?

Dado um número de geração no intervalo -3...3 e o indicador "m" para masculino ou "f" para feminino, retorne exatamente a string de parentesco em inglês mostrada na tabela. Valores negativos correspondem a antepassados; valores positivos, a descendentes; e 0 retorna "me!".

GeraçãoMasculinoFeminino
-3great grandfathergreat grandmother
-2grandfathergrandmother
-1fathermother
0me!me!
1sondaughter
2grandsongranddaughter
3great grandsongreat granddaughter

Exemplos

generation(2, "f") // "granddaughter"
generation(-3, "m") // "great grandfather"
generation(1, "f") // "daughter"