P6681 [CCO 2019] Bad Codes

题目描述

有 $N$ 个长度至多为 $M$ 的字符串。 字符串之间可以随意拼接。 如果可以用不同的方法拼接出两个相同的字符串,则请输出可能存在的这种字符串的最小长度,否则,请输出 `-1`。

输入格式

第一行为两个整数 $N,M$。 接下来 $N$ 行,一行一个长度至多为 $M$ 的字符串。

输出格式

如果可以用不同的方法拼接出两个相同的字符串,则请输出可能存在的这种字符串的最小长度,否则,请输出 `-1`。

说明/提示

#### 样例 1 解释 拼接第二个字符串与第三个字符串可以得到第一个字符串。 #### 数据范围及限制 对于 $100\%$ 的数据,保证 $1\le N,M\le 50$,读入的字符串里无空串,读入的字符 $\in \{0,1\}$。 | 子任务 | $N=$ | $M\le$ | 特殊限制 | 分数 | :-: | :-: | :-: | :-: |:-: | 1 | $4$ | $6$ | 无 | $16$ | 2 | 无特殊限制 | 无特殊限制 | 每一个字符串包含一个 `1`,如 `00100`。| $28$ | 3 | 无特殊限制 | 无特殊限制 | 无 | $56$ #### 说明 本题译自 [Canadian Computing Olympiad 2019](https://cemc.math.uwaterloo.ca/contests/computing/2019/index.html) [Day 2](https://cemc.math.uwaterloo.ca/contests/computing/2019/stage%202/day2.pdf) T3 Bad Codes。