eolymp
bolt
Try our new interface for solving problems
Problems

Language Recognition

Language Recognition

Deterministic Final-State Automaton (DFA) is a directed multigraph whose vertices are called states and edges are called transitions. Each DFA transition is labeled with a single letter. Moreover, for each state s and each letter l there is at most one transition that leaves s and is labeled with l. DFA has a single starting state and a subset of final states. DFA defines a language of all words that can be constructed by writing down the letters on a path from the starting state to some final state.

Given a language with a finite set of words it is always possible to construct a DFA that defines this language. The picture on the left shows such DFA for the language cosisting of three words: fix, foo, ox. However, this DFA has 7 states, which is not optimal. The DFA on the right defines the same language with just 5 states.

prb7595.gif

Your task is to find the minimum number of states in a DFA that defines the given language.

Input

The first line contains a single integer number n (1n5 000) - the number of words in the language. It is followed by n lines with a word on each line. Each word consists of 1 to 30 lowercase Latin letters from "a" to "z". All words are different.

Output

Write a single integer number - the minimal number of states in a DFA that defines the language from the input.

Time limit 1 second
Memory limit 64 MiB
Input example #1
3
fix
foo
ox
Output example #1
5
Input example #2
4
a
ab
ac
ad
Output example #2
3
Source 2007 ACM NEERC, Semifinals, November 28, Problem L