#P1709. Crossword

Crossword

本题没有可用的提交语言。

题目描述

一个长度为LL的双线性填字游戏是一个由LL个小写字母组成的字符串,满足至少存在两种不同的分解方式(称为分解),将其拆分为给定单词列表中的单词。例如,当L=17L=17时:

   |       |       |       |
a n d a t a r e a l l a s t a s k
     |   |     |     |   |

单词来自以下列表:all, an, and, are, area, as, ask, at, data, last, or, read, real, task

两种分解中的单词不能重复使用,且除字符串末尾外,两种分解的单词结束位置不能相同(否则可拆分为两个独立填字游戏)。其中一种分解可以是单个单词。

请编写程序,为给定单词列表构造字典序最小的长度为LL的双线性填字游戏。若无法构造,输出“NONO SOLUTIONSOLUTION”。

输入

输入文件第一行是整数LL4L504 \leq L \leq 50),第二行是整数NN1000\leq 1000),表示单词数量。接下来NN行是按字典序排列的单词,每个单词由22~2020个小写字母组成。

输出

输出字典序最小的符合条件的字符串。若无法构造,输出“NONO SOLUTIONSOLUTION”。

输入示例 1

17  
19  
all  
an  
and  
area  
as  
ask  
at  
data  
do  
for  
last  
of  
or  
ort  
read  
real  
task  
to  
tor  

输出示例 1

andatareadofortor  

来源

Northeastern Europe 1997