#include <stdio.h>

#define SIZE 5
int stack[SIZE];
int sp;

void push(int data) {
    if (sp < SIZE) {
        stack[sp++] = data;
    } else {
        printf("Stack Overflow\n");
    }
}
void pop() {
    if (sp > 0) {
        sp--;
        printf("popped: %d\n", stack[sp]);
    } else {
        printf("Stack Underflow\n");
    }
}


int main(void)
{
    sp = 0;
    int resp, data;

    while(1){
        printf("1: push  2: pop  0: end : ");
        scanf("%d", &resp);

        if(!resp) break;

        switch(resp){
            case 1: printf("push : "); 
            scanf("%d", &data);
                    push( data );
                    break;
            case 2: pop();
                    break;
        }
        printf("sp=%d\n", sp);
    }

    printf("\n");
    for(int i=0; i<sp; i++){
        printf("stack[%d]=%d \n", i, stack[i]);
    }

    return 0;
}