package ua;

import java.util.LinkedList;
import java.util.NoSuchElementException;

public class TqsStack<T> {

    private LinkedList<T> stack = new LinkedList<>();

    public T pop() {
        if (stack.isEmpty()) {
            throw new NoSuchElementException("Stack is empty");
        }
       return stack.removeFirst();
    }

    public int size() {
        return stack.size();
    }

    public T peek() {
        if (stack.isEmpty()) {
            throw new NoSuchElementException("Stack is empty");
        }
        return stack.getFirst();
    }

    public void push(T element) {
        stack.addFirst(element);
    }

    public boolean isEmpty() {
        return stack.isEmpty();
    }

    public T popTopN(int n) {
        if (n <= 0 || n > stack.size()) {
            throw new IllegalArgumentException("Invalid n: " + n);
        }

        T top = null;
        for (int i = 0; i < n; i++) {
            top = stack.removeFirst();
        }
        return top;
}


}
