a has a tree structure, it must not be cyclic nor have a
DAG (Directed Acyclic Graph) structure.
[first, last) is a valid range.
InputIterator1::value_type is convertible to
DFA1::char_type.
[start, finish) is a valid range.
InputIterator2::value_type is a container whose
value_type is DFA2::char_type.