#include <stdio.h>

#define SIZE 5

int stack[SIZE];
int sp = 0;

void push(int data) {
    printf("push()sp = %d\n", sp);

    if (sp >= SIZE) return;

    stack[sp] = data;
    sp++;
}

int pop(void) {
    printf("pop()sp = %d\n", sp);

    if (sp <= 0) return -1;

    sp--;
    return stack[sp];
}

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

int main(void) {
    push(1);
    push(2);
    push(3);

    printStack();

    printf("%d\n", pop());
    printf("%d\n", pop());
    printf("%d\n", pop());
    printf("%d\n", pop());

    return 0;
}