+ //find the lowest ancestor
+ p = NULL;
+ int i = xbt_dynar_length (ancestors_a1) - 1;
+ int j = xbt_dynar_length (ancestors_a2) - 1;
+ while (i >= 0 && j >= 0){
+ container_t a1p = *(container_t*)xbt_dynar_get_ptr (ancestors_a1, i);
+ container_t a2p = *(container_t*)xbt_dynar_get_ptr (ancestors_a2, j);
+ if (a1p == a2p){
+ p = a1p;
+ }else{
+ break;
+ }
+ i--;
+ j--;
+ }
+ xbt_dynar_free (&ancestors_a1);
+ xbt_dynar_free (&ancestors_a2);
+ return p;