keeping track of minimum vlaue on the go, while doing queue push/pop ( amortized O(1) )