#include<iostream>
#include<deque>

using namespace std;

int main(){
  int n;
  cin>>n;
  deque<int> d;
  int c1,c2,c3;
  for(int i=0;i<n;i++){
    cin>>c1;
    cin>>c2;
    if(c1==0){
      cin>>c3;
      if(c2==0){
        d.push_front(c3);
      }else{
        d.push_back(c3);
      }
    }else if(c1==1){
      cout<<d[c2]<<endl;
    }else{
      if(c2==0){
        d.pop_front();
      }else{
        d.pop_back();
      }
    }
  }
}

