Deterministic Finite automata