#include #include using namespace std; constexpr int MAX_NODES = 10 * 1000 * 1000; int refs[MAX_NODES][26] = {}; int num_strings[MAX_NODES] = {}; int sum_lengths(int node, int len) { if (num_strings[node] == 1) { return len; } int res = 0; for (int l = 0; l < 26; l++) { if (refs[node][l]) { res += sum_lengths(refs[node][l], len + 1); } } return res; } int main() { int cur_nodes = 1, n, l; cin >> n >> l; for (int i=0; i < n; i++) { string S; cin >> S; int loc = 0; num_strings[loc]++; for (char ch : S) { if (refs[loc][ch - 'a'] == 0) { refs[loc][ch - 'a'] = cur_nodes++; } loc = refs[loc][ch - 'a']; num_strings[loc]++; } } cout << sum_lengths(0, 0) << endl; cerr << cur_nodes << endl; return 0; }