Quiz on stack and queue

Let Q denote a queue containing sixteen numbers and S be an empty stack. Head(Q) returns the element at the head of the queue Q without removing it from Q. Similarly Top(S) returns the element at the top of S without removing it from S. Consider the algorithm given below.

while Q is not empty do {
  if S is empty OR Top(S)<= Head(Q) then {
     x = Dequeue(Q)
     Push(S, x)
  } else {
     x = Pop(S)
    Enqueue(Q,x)
  }
}

The maximum possible number of iterations of the while loop in the algorithm is ----?
Pls explain this