#include <iostream>
using namespace std;
struct node{
int val;
node *nxt = nullptr;
node *pre = nullptr;
};
node *head = nullptr,*tall = nullptr;
int k;
void ins(int n,int x){
node *now;
now = new node;
now->val = x;
if(head == nullptr && tall == nullptr){
head = now;
tall = now;
return;
}
node *p1 = head;
for(int i = 1;i <= n;i++) p1 = p1->nxt;
node *p2 = p1->nxt;
p1->nxt = now;
p2->pre = now;
now->nxt = p2;
now->pre = p1;
if(n == k) tall = now;
if(n == 0) head = now;
k++;
}
void del(int n){
if(n == 1){
node *p = head;
head = head->nxt;
head->nxt->pre = head;
delete p;
k--;
return;
}
node *p1,*p2,*p3;
for(int i = 1;i < n;i++) p1 = p1->nxt;
p3 = p1->nxt;
if(n == k){
tall = p1;
delete p3;
k--;
return;
}
p2 = p1->nxt->nxt;
delete p3;
p1->nxt = p2;
p2->pre = p1;
k--;
}
int find(int n){
node *p = head;
if(n == k) return 0;
for(int i = 1;i <= n;i++) p = p->nxt;
return p->val;
}
int main(){
char ch;
int n,x;
while(cin >> ch){
if(ch == 'i') cin >> n >> x,ins(n,x);
if(ch == 'd') cin >> n,del(n);
if(ch == 'f') cin >> n,cout << find(n) << ' ';
}
return 0;
}