#include <stdio.h>
#include <stdint.h>
#include <string.h>
#define MAX 10
typedef struct {
int buffer[MAX]={0,0,0,0,0,0,0,0,0,0};
int head;
} Stack;
void process_stack(int n) {
// Your logic here
Stack buf;
Stack *cb = &buf;
char command[10];
cb->head = 0;
for (int i = 0; i< n;i++){
scanf("%s",command);
if(strncmp(command,"push",4)==0){
int num;
scanf("%d",&num);
// Your logic using only pointer access
if (cb->head<(MAX)){
cb->buffer[cb->head++]=num;
}
else
printf("Stack Overflow\n");
}
else if(strncmp(command,"pop",3)==0) {
int rval;
if (cb->head > 0) {
rval=cb->buffer[--(cb->head)];
printf("%d\n",rval);
}
else printf("Stack Underflow\n");
}
}
}
int main() {
int n;
scanf("%d", &n);
getchar(); // Consume newline after number
process_stack(n);
return 0;
}