':type findNums: List[int]
:type nums: List[int]
:rtype: List[int]'

def nextGreaterElement(self, findNums, nums):

    (stk, lookup) = ([], {})
    for num in nums:
        while (stk and (num > stk[(-1)])):
            lookup[stk.pop()] = num
        stk.append(num)
    while stk:
        lookup[stk.pop()] = (-1)
    return map((lambda x: lookup[x]), findNums)
