Gift, memento and souvenir in official conext
Solution 1:
There are different connotations for the different words, but they have some overlap.
A gift is the broadest word for an item given to another in gratitude or appreciation, and without compensation or the expectation of an item in return. Merely giving someone an item does not make it a gift; if you buy something at a store and the cashier gives you change back, that's not a gift.
If you give someone a gift but you expect something specific in return, that's closer to a bribe, especially if they are in a position of power.
A present is a gift that's typically for a special occasion like a birthday or a holiday. "Present" often implies that the gift was selected with at least some care and consideration.
A souvenir or a memento isn't necessarily a gift — it's an item that you acquired to remember some event, person, or place. "Souvenir" sometimes suggests a certain tackiness or kitsch. If you travel to Paris and buy a miniature plastic Eiffel Tower keychain, that's a (tacky) souvenir. If you break up with a significant other on amicable terms and they give you a photo to keep, that's a memento of your time together.
If you just want to refer to "something that you gave to someone else as an expression of gratitude", gift is probably the best choice. If you gave the gift in the context of a holiday or celebration, present is also appropriate.