Two. One stack is used for enqueue operations, and the other stack is used for dequeue operations. The enqueue stack is used to push elements onto the queue, and the dequeue stack is used to pop elements off of the queue. To implement a queue using stacks, the elements are first pushed onto the enqueue stack. When a dequeue operation is performed, the elements are popped from the enqueue stack and pushed onto the dequeue stack. The top element of the dequeue stack is then returned as the dequeued element. This process ensures that the first element pushed onto the queue is also the first element to be popped off of the queue, which is the behavior of a queue.