#include <iostream>
#include <queue>
using namespace std;
class Stack {
private:
queue<int> q1, q2;
public:
void push(int x) {
q2.push(x);
while (!q1.empty()) {
q2.push(q1.front());
q1.pop();
}
swap(q1, q2);
}
int pop() {
if (!q1.empty()) {
int element = q1.front();
q1.pop();
return element;
}
else{
cout<<"Stack Underflow";
return -1;
}
}
};
int main() {
Stack myStack;
cout<<"Pushing 1 then 2 then 3"<<endl;
myStack.push(1);
myStack.push(2);
myStack.push(3);
cout<<"Popping...."<<endl;
int element = myStack.pop();
cout<<"Popped element: "<<element<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBTdGFjayB7CnByaXZhdGU6CiAgICBxdWV1ZTxpbnQ+IHExLCBxMjsKCnB1YmxpYzoKICAgIHZvaWQgcHVzaChpbnQgeCkgewogICAgICAgIHEyLnB1c2goeCk7CiAgICAgICAgd2hpbGUgKCFxMS5lbXB0eSgpKSB7CiAgICAgICAgICAgIHEyLnB1c2gocTEuZnJvbnQoKSk7CiAgICAgICAgICAgIHExLnBvcCgpOwogICAgICAgIH0KICAgICAgICBzd2FwKHExLCBxMik7CiAgICB9CgogICAgaW50IHBvcCgpIHsKICAgICAgICBpZiAoIXExLmVtcHR5KCkpIHsKICAgICAgICAgICAgaW50IGVsZW1lbnQgPSBxMS5mcm9udCgpOwogICAgICAgICAgICBxMS5wb3AoKTsKICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGNvdXQ8PCJTdGFjayBVbmRlcmZsb3ciOwogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgfQp9OwoKaW50IG1haW4oKSB7CiAgICBTdGFjayBteVN0YWNrOwogICAgCiAgICBjb3V0PDwiUHVzaGluZyAxIHRoZW4gMiB0aGVuIDMiPDxlbmRsOwogICAgbXlTdGFjay5wdXNoKDEpOwogICAgbXlTdGFjay5wdXNoKDIpOwogICAgbXlTdGFjay5wdXNoKDMpOwogICAgY291dDw8IlBvcHBpbmcuLi4uIjw8ZW5kbDsKICAgIGludCBlbGVtZW50ID0gbXlTdGFjay5wb3AoKTsKICAgIGNvdXQ8PCJQb3BwZWQgZWxlbWVudDogIjw8ZWxlbWVudDw8ZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==