input: Write a python function to find the least common ancestor (LCA) reconciliation mapping score. 
  assert reconLCA({'<1>': [2, 3, 'root'], '<2>': [4, 5, ''], '<3>': [6, 7, '']}, {'A': 'species1', 'B': 'species2'}, {'<1>': ['species1'], '<2>': ['species1'], '<3>': ['species2']}) == 0
  assert reconLCA({'<1>': [2, 3, 'root'], '<2>': [4, 5, ''], '<3>': [6, 7, '']}, {'A': 'species1', 'B': 'species2'}, {'<1>': ['species1'], '<2>': ['species1'], '<3>': ['species1']}) == 1
output: def reconLCA(tree, gene_species_mapping, species_tree):
      def find_lca(node1, node2, parent_map):
          ancestors1 = set()
          while node1:
              ancestors1.add(node1)
              node1 = parent_map.get(node1, None)
          while node2:
              if node2 in ancestors1:
                  return node2
              node2 = parent_map.get(node2, None)
          return None
  
      parent_map = {}
      for node, (child1, child2, parent) in tree.items():
          parent_map[child1] = node
          parent_map[child2] = node
  
      gene_to_species = {gene: species for gene, species in gene_species_mapping.items()}
  
      score = 0
      for gene, species in gene_to_species.items():
          for other_gene, other_species in gene_to_species.items():
              if gene != other_gene:
                  lca = find_lca(gene, other_gene, parent_map)
                  if lca and all(sp in species_tree[lca] for sp in (species, other_species)):
                      score += 1
                      break
      return score