text: /*
      written by Pankaj Kumar.
      country:-INDIA
      Institute: National Institute of Technology, Uttarakhand
  */
  typedef long long ll ;
  typedef unsigned long long ull;
  typedef vector<int> vl;
  typedef vector<vector<int>> vvl;
  #define speed cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(0);
  /*  Abbrevations  */
  #define ff first
  #define ss second
  #define mp make_pair
  #define pb push_back
  // loops
  #define forin(arr,n) for(ll i=0;i<n;i++) cin>>arr[i];
  // Some print
  #define no cout<<"NO"<<endl;
  #define yes cout<<"YES"<<endl;
  // sort
  #define all(V) (V).begin(),(V).end()
  #define srt(V) sort(all(V))
  #define srtGreat(V) sort(all(V),greater<ll>())
  // some extra
  #define printv(v) for(ll i=0;i<ll(v.size());i++){cout<<v[i]<<" ";} cout<<endl;
  #define precision(x) cout<<fixed<<setprecision(x);
  #define sz(V) ll(V.size())
  
  
  /* ascii value
  A=65,Z=90,a=97,z=122
  */
  
  /* Some syntax 
  //Syntax to create a min heap for priority queue
  //priority_queue <int, vector<int>, greater<int>>pq;
  */
  /*  --------------------MAIN PROGRAM----------------------------*/
  // to run ctrl+b
  const ll INF=1e18;
  const ll mod1=1e9+7;
  const ll mod2=998244353;
  // Techniques :
  // divide into cases, brute force, pattern finding
  // sort, greedy, binary search, two pointer
  // transform into graph
  
  // Experience :
  // Cp is nothing but only observation and mathematics.
  
  
  //Add main code here
  
  class MyStack {
  public:
      /** Initialize your data structure here. */
      queue<int> q;
  
      MyStack() {
      }
      
      /** Push element x onto stack. */
      void push(int x) {
          q.push(x);
      }
      
      /** Removes the element on top of the stack and returns that element. */
      int pop() {
          queue<int> temp;
          while(q.size()>1){
              temp.push(q.front());
              q.pop();
          }
          int t=q.front();
          q.pop();
          q=temp;
          return t;
      }
      
      /** Get the top element. */
      int top() {
          return q.back();
      }
      
      /** Returns whether the stack is empty. */
      bool empty() {
          return q.size()==0;
      }
  };
  
  /**
   * Your MyStack object will be instantiated and called as such:
   * MyStack* obj = new MyStack();
   * obj->push(x);
   * int param_2 = obj->pop();
   * int param_3 = obj->top();
   * bool param_4 = obj->empty();
   */
  
  
  
  /* -----------------END OF PROGRAM --------------------*/
  /*
  * stuff you should look before submission
  * constraint and time limit
  * int overflow
  * special test case (n=0||n=1||n=2)
  * don't get stuck on one approach if you get wrong answer
  */