def all_the_longest(l):
lst = [l[0]]
for word in l:
if len(word) > len(lst[-1]):
while len(lst) > 0 and len(word) > len(lst[-1]):
lst.pop()
lst.append(word)
if len(word) == len(lst[-1]) and word != lst[-1]:
lst.append(word)
return lst
if __name__ == '__main__':
print(all_the_longest(["Seraenina", "Gandalf", "Harry", "Walter"]))
ZGVmIGFsbF90aGVfbG9uZ2VzdChsKToKICAgIGxzdCA9IFtsWzBdXQogICAgZm9yIHdvcmQgaW4gbDoKICAgICAgICBpZiBsZW4od29yZCkgPiBsZW4obHN0Wy0xXSk6CiAgICAgICAgICAgIHdoaWxlIGxlbihsc3QpID4gMCBhbmQgbGVuKHdvcmQpID4gbGVuKGxzdFstMV0pOgogICAgICAgICAgICAgICAgbHN0LnBvcCgpCiAgICAgICAgICAgIGxzdC5hcHBlbmQod29yZCkKICAgICAgICBpZiBsZW4od29yZCkgPT0gbGVuKGxzdFstMV0pIGFuZCB3b3JkICE9IGxzdFstMV06CiAgICAgICAgICAgIGxzdC5hcHBlbmQod29yZCkKICAgIHJldHVybiBsc3QKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKCXByaW50KGFsbF90aGVfbG9uZ2VzdChbIlNlcmFlbmluYSIsICJHYW5kYWxmIiwgIkhhcnJ5IiwgIldhbHRlciJdKSk=