def merge_on_overlap(s1: str, s2: str) -> str:
max_possible_overlap_len = min(len(s1), len(s2))
for i in range(1, max_possible_overlap_len + 1):
if s1.endswith(s2[:i]):
return s1 + s2[i:]
return s1 + s2
print(merge_on_overlap("fantasy time travel technology", "technology extraterrestrial life"))
'''
run:
fantasy time travel technology extraterrestrial life
'''