Propose a data structure that supports the stack push and pop operations and a third operation findMin, which returns the smallest element in the data structure, all in O(1) worst-case time. When you are convinced you have a working design, write a Java class that implements your proposed data structure (with methods). Include a block comment at the top of the Java file that describes your proposed data structure, so that the design documentation and the code are contained in a single file.