Ukiuni nursertiittarneq nunatsinni inissisimanik, nunatsinni inissisimanik ukiuni kiffartuussaq, ukiuni kiffartuussarneq nunatsinni inissisimaneq aallartitsisut. 

Tikilluaqqat assigiinngitsut nums1, nums2, nums1 tusarnaani nums2-mut. 

Nums1[i]-mi, i = 0...nums1-pingasut, nums2[j]-mi, nums1[i] = nums2[j], ukiuni nursertiittarneq nums2[j]-mi ukiuni kiffartuussarneq. Qasuisuunngitsut ukiuni kiffartuussarneq, -1 aallartitsisut. 

Aaqoqatit assigiinngitsut ans-mut, nums1-pingasut aallartitsisut, ans[i]-mi ukiuni kiffartuussarneq aallartitsisut.
Ilisarnersuut tukkiaat, tatigiinnut sanaatit nunatsinni nunagisitsinni, stack tukkiaatimik pisoqaatitillu nunagisitsinni sananeersut. Suli, sanaatit nunatsinni nunagisitsini, pisoqaatitillu sananeersut tukkiaatimik ipernerulernerani, tukkiaatitaasut sananeersut stack-imut pisoqaatilluni. Ikiortortoq sananeersut ilisarnersuut, -1 tukkiaatitaasut. 

def nextGreaterElement(nums1, nums2):
    stack = []
    next_greater = {}
    
    for num in nums2[::-1]:
        while stack and num >= stack[-1]: 
            stack.pop()
        if stack:
            next_greater[num] = stack[-1]
        else:
            next_greater[num] = -1
        stack.append(num)
    
    ans = []
    for num in nums1:
        ans.append(next_greater[num])
    
    return ans