小藍想制作一個吊墜,他手上有 n 個長度為 m 的首尾相連的環(huán)形字符串{s1, s2, · · · , sn} ,他想用 n ? 1 條邊將這 n 個字符串連接起來做成吊墜,要求所有的字符串連完后形成一個整體。連接兩個字符串 si, sj 的邊的邊權(quán)為這兩個字符串的最長公共子串的長度(可以按環(huán)形旋轉(zhuǎn)改變起始位置,但不能翻轉(zhuǎn)),小藍希望連完后的這 n ? 1 條邊的邊權(quán)和最大,這樣的吊墜他覺得最好看,請計算最大的邊權(quán)和是多少。
輸入的第一行包含兩個正整數(shù) n, m ,用一個空格分隔。
接下來 n 行,每行包含一個長度為 m 的字符串,分別表示 s1, s2, · · · , sn 。
輸出一行包含一個整數(shù)表示答案。
4 4 aabb abba acca abcd
8
【樣例說明】
連接 < 1, 2 >, < 2, 3 >, < 2, 4 > ,邊權(quán)和為 4 + 2 + 2 = 8
【評測用例規(guī)模與約定】
對于 20% 的評測用例,1 ≤ n, m ≤ 10 ;
對于所有評測用例,1 ≤ n ≤ 200 ,1 ≤ m ≤ 50 。所有字符串由小寫英文字母組成。