class Solution(object):
def nextGreaterElements(self, nums):
stack =[]
res = [ -1 for _ in nums]
for _ in range(2):
for i, num in enumerate(nums):
while stack and num > nums[stack[-1]]:
res[stack.pop()] = num
stack.append(i)
return res
if __name__ == "__main__":
m = Solution()
nums = [1,2,1]
print(m.nextGreaterElements(nums))