Consider a stack data structure into which we can PUSH and POP records. Assume
that each record pushed in the stack has a positive integer key and that all keys are distinct.
We wish to augment the stack data structure with an \( O(1) \) time MIN operation that
returns a pointer to the record with the smallest key present in the stack:
1) Without deleting the corresponding record, and
2) Without increasing the complexities of the standard stack operations.
Which one or more of the following approach(es) can achieve it?