Конечный автомат, требующий небольшой доработки.