Aqui se explica un poco de la logica que implemente para sortear irregularidades de este estilo
Saludos,