Pilha retroativa

Interface:
retroStack(): cria e devolve uma pilha retroativa vazia
insert(t, "Push", x): insere um "empilha x" na sequência de modificações no instante t
insert(t, "Pop"): insere um "pop" na sequência de modificações no instante t
delete(t): remove da sequência de modificações a operação do instante t
size(t): número de elemento na pilha retroativa no instante t
top(t): elemento do topo da pilha retroativa no instante t
kth(t,k): k-ésimo elemento da pilha retroativa no instante t, onde o topo é o primeiro da pilha.

Print(t): imprima a pilha do instante t, começando do topo

Seu programa deve começar com uma pilha vazia.

Codificação das operações:

1 <t> <x> significa insert(t, "Push", x)
2 <t>     significa insert(t, "Pop")
3 <t>     significa delete(t)
4 <t>     significa println(size(t))
5 <t>     significa println(top(t))
6 <t> <k> significa println(kth(t, k))
7 <t>     significa Print(t)
Exemplo de entrada para o programa de testes:
1 1 100
1 5 400
1 2 200
1 4 300
7 10
6 10 3
2 3
6 10 3
2 7
3 3
5 10
2 6
5 10
1 8 500
4 8
7 8
Saída esperada para este teste:
400 300 200 100
200
100
300
200
3
500 200 100