Здравствуйте, требуется построить конечный автомат для языка

:

=

,

и

=

.
Как я понимаю, циклы использовать нельзя, иначе сломается исходная размерность. Была идея разбить задачу на случаи по

букв

,

соответственно, с учётом вхождения

, а потом объединить полученные языки, но это, вроде, только увеличит объём работы. Ну и первая мысль - в лоб из каждой вершины выводить по три дуги

,

,

. соответственно и всё это продолжать с учётом условий, но автомат тогда тоже выйдет безумно огромным.
Так вот, сам вопрос: есть ли более рациональный и экономный способ построить конечный автомат?