Очередь с защитой от ошибок

Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и моделирующую работу очереди, реализовав все указанные здесь методы.  Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:

push n
Добавить в очередь число n (значение n задается после команды). Программа должна вывести ok.
pop
Удалить из очереди первый элемент. Программа должна вывести его значение.
front
Программа должна вывести значение первого элемента, не удаляя его из очереди.
size
Программа должна вывести количество элементов в очереди.
clear
Программа должна очистить очередь и вывести ok.
exit
Программа должна вывести bye и завершить работу.

Перед исполнением операций front и pop программа должна проверять, содержится ли в очереди хотя бы один элемент. Если во входных данных встречается операция front или pop, и при этом очередь пуста, то программа должна вместо числового значения вывести строку error.

Запрещается использовать стандартный стек, а также стандартные динамические массивы с функциями типа append/push_back. Пишите на массиве фиксированной длины, с индексами-указателями.

Входные данные

Вводятся команды управления очередью, по одной на строке. Количество команд не превосходит миллиона, в каждый момент времени в очереди не более 200 элементов.

Выходные данные

Требуется вывести протокол работы очереди, по одному сообщению на строке

Примеры
Входные данные
push 1
front
exit
Выходные данные
ok
1
bye
Входные данные
size
push 1
size
push 2
size
push 3
size
exit
Выходные данные
0
ok
1
ok
2
ok
3
bye

Задача на informatics